ManipulationDelta Klasse

Definition

Enthält Transformationsdaten, die akkumuliert werden, wenn Manipulationsereignisse auftreten.Contains transformation data that is accumulated when manipulation events occur.

public ref class ManipulationDelta
public class ManipulationDelta
type ManipulationDelta = class
Public Class ManipulationDelta
Vererbung
ManipulationDelta

Beispiele

Das folgende Beispiel zeigt einen Ereignishandler für das ManipulationDelta -Ereignis.The following example shows an event handler for the ManipulationDelta event. Im Beispiel werden die TranslationEigenschaften Scale, und Rotation zum Verschieben, Ändern der Größe und zum Drehen eines Rectangle-Eigenschaft angewendet.The example applies the Translation, Scale, and Rotation properties to move, resize, and rotate a Rectangle. Dieses Beispiel ist Teil eines größeren Beispiels in exemplarischen Vorgehensweise: Erstellen Ihrer ersten Touchscreen-Anwendung.This example is part of a larger example in Walkthrough: Creating Your First Touch Application.

void Window_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
    
    // Get the Rectangle and its RenderTransform matrix.
    Rectangle rectToMove = e.OriginalSource as Rectangle;
    Matrix rectsMatrix = ((MatrixTransform)rectToMove.RenderTransform).Matrix;

    // Rotate the Rectangle.
    rectsMatrix.RotateAt(e.DeltaManipulation.Rotation, 
                         e.ManipulationOrigin.X, 
                         e.ManipulationOrigin.Y);

    // Resize the Rectangle.  Keep it square 
    // so use only the X value of Scale.
    rectsMatrix.ScaleAt(e.DeltaManipulation.Scale.X, 
                        e.DeltaManipulation.Scale.X, 
                        e.ManipulationOrigin.X,
                        e.ManipulationOrigin.Y);

    // Move the Rectangle.
    rectsMatrix.Translate(e.DeltaManipulation.Translation.X,
                          e.DeltaManipulation.Translation.Y);

    // Apply the changes to the Rectangle.
    rectToMove.RenderTransform = new MatrixTransform(rectsMatrix);

    Rect containingRect =
        new Rect(((FrameworkElement)e.ManipulationContainer).RenderSize);

    Rect shapeBounds =
        rectToMove.RenderTransform.TransformBounds(
            new Rect(rectToMove.RenderSize));

    // Check if the rectangle is completely in the window.
    // If it is not and intertia is occuring, stop the manipulation.
    if (e.IsInertial && !containingRect.Contains(shapeBounds))
    {
        e.Complete();
    }

    
    e.Handled = true;
}
Private Sub Window_ManipulationDelta(ByVal sender As Object, ByVal e As ManipulationDeltaEventArgs)

    ' Get the Rectangle and its RenderTransform matrix.
    Dim rectToMove As Rectangle = e.OriginalSource
    Dim rectTransform As MatrixTransform = rectToMove.RenderTransform
    Dim rectsMatrix As Matrix = rectTransform.Matrix


    ' Rotate the shape
    rectsMatrix.RotateAt(e.DeltaManipulation.Rotation,
                         e.ManipulationOrigin.X,
                         e.ManipulationOrigin.Y)

    ' Resize the Rectangle. Keep it square 
    ' so use only the X value of Scale.
    rectsMatrix.ScaleAt(e.DeltaManipulation.Scale.X,
                        e.DeltaManipulation.Scale.X,
                        e.ManipulationOrigin.X,
                        e.ManipulationOrigin.Y)

    'move the center
    rectsMatrix.Translate(e.DeltaManipulation.Translation.X,
                          e.DeltaManipulation.Translation.Y)

    ' Apply the changes to the Rectangle.
    rectTransform = New MatrixTransform(rectsMatrix)
    rectToMove.RenderTransform = rectTransform

    Dim container As FrameworkElement = e.ManipulationContainer
    Dim containingRect As New Rect(container.RenderSize)

    Dim shapeBounds As Rect = rectTransform.TransformBounds(
                                New Rect(rectToMove.RenderSize))

    ' Check if the rectangle is completely in the window.
    ' If it is not and intertia is occuring, stop the manipulation.
    If e.IsInertial AndAlso Not containingRect.Contains(shapeBounds) Then
        e.Complete()
    End If

    e.Handled = True
End Sub

Hinweise

Die ManipulationDelta -Klasse enthält Informationen zu den Änderungen an der Position einer Bearbeitung.The ManipulationDelta class contains information about the changes in the position of a manipulation. Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)interpretiert die Änderungen als Translation, Expansionoder Rotation.interprets the changes as a Translation, Expansion, or Rotation. Wenn das ManipulationDelta -Ereignis in einem UIElementauftritt, verwenden Sie die- ManipulationDelta Eigenschaften für ein-Objekt, um das Objekt zu transformieren, das bearbeitet werden soll.When the ManipulationDelta event occurs on a UIElement, use the properties on a ManipulationDelta object to transform the object that should be manipulated. Die ManipulationDeltaEventArgs -Klasse stellt zwei Eigenschaften des ManipulationDelta- DeltaManipulation Typs CumulativeManipulationbereit: und.The ManipulationDeltaEventArgs class provides two properties of type ManipulationDelta: DeltaManipulation and CumulativeManipulation.

Weitere Informationen zu Manipulationen finden Sie unter Übersicht über die Eingabe.For more information about manipulations, see the Input Overview. Ein Beispiel für eine Anwendung, die auf Manipulationen antwortet, finden Sie unter Exemplarische Vorgehensweise: Erstellen Ihrer ersten Touchscreen-Anwendung.For an example of an application that responds to manipulations, see Walkthrough: Creating Your First Touch Application.

Konstruktoren

ManipulationDelta(Vector, Double, Vector, Vector)

Initialisiert eine neue Instanz der ManipulationDelta-Klasse.Initializes a new instance of the ManipulationDelta class.

Eigenschaften

Expansion

Ruft den Betrag, um den die Größe geändert wurde, in Geräteunabhängige Einheiten (1/96 Zoll pro Einheit)device-independent units (1/96th inch per unit) ab oder legt ihn fest.Gets or sets the amount the manipulation has resized in Geräteunabhängige Einheiten (1/96 Zoll pro Einheit)device-independent units (1/96th inch per unit).

Rotation

Ruft die Manipulationsdrehung in Grad ab oder legt diese fest.Gets or sets the rotation of the manipulation in degrees.

Scale

Ruft den Betrag, um den die Größe geändert wurde, als Multiplikator ab oder legt diesen fest.Gets or sets the amount the manipulation has resized as a multiplier.

Translation

Ruft die lineare Geschwindigkeit der Manipulation ab oder legt sie fest.Gets or sets the linear motion of the manipulation.

Methoden

Equals(Object)

Ermittelt, ob das angegebene Objekt und das aktuelle Objekt gleich sind.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
GetHashCode()

Dient als die Standard-HashfunktionServes as the default hash function.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)

Gilt für: