Auf Englisch lesen

Teilen über


ManipulationDelta Klasse

Definition

Enthält Transformationsdaten, die akkumuliert werden, wenn Manipulationsereignisse auftreten.

C#
public class ManipulationDelta
Vererbung
ManipulationDelta

Beispiele

Das folgende Beispiel zeigt einen Ereignishandler für das ManipulationDelta Ereignis. Im Beispiel werden die TranslationEigenschaften , Scaleund Rotation angewendet, um eine Rectanglezu verschieben, die Größe zu ändern und zu rotieren. Dieses Beispiel ist Teil eines größeren Beispiels in Exemplarische Vorgehensweise: Erstellen Ihrer First Touch-Anwendung.

C#
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;
}

Hinweise

Die ManipulationDelta -Klasse enthält Informationen zu den Änderungen an der Position einer Manipulation. Windows Presentation Foundation (WPF) interpretiert die Änderungen als Translation, Expansionoder Rotation. Wenn das ManipulationDelta Ereignis auf einem UIElementauftritt, verwenden Sie die Eigenschaften für ein ManipulationDelta -Objekt, um das Objekt zu transformieren, das bearbeitet werden soll. Die ManipulationDeltaEventArgs -Klasse stellt zwei Eigenschaften vom Typ bereit ManipulationDelta: DeltaManipulation und CumulativeManipulation.

Weitere Informationen zu Bearbeitungen finden Sie in der Eingabeübersicht. Ein Beispiel für eine Anwendung, die auf Manipulationen reagiert, finden Sie unter Exemplarische Vorgehensweise: Erstellen Ihrer First Touch-Anwendung.

Konstruktoren

ManipulationDelta(Vector, Double, Vector, Vector)

Initialisiert eine neue Instanz der ManipulationDelta-Klasse.

Eigenschaften

Expansion

Ruft den Betrag ab, den die Bearbeitung in geräteunabhängigen Einheiten (1/96 Zoll pro Einheit) geändert hat, oder legt diese fest.

Rotation

Ruft die Manipulationsdrehung in Grad ab oder legt diese fest.

Scale

Ruft den Betrag, um den die Größe geändert wurde, als Multiplikator ab oder legt diesen fest.

Translation

Ruft die lineare Geschwindigkeit der Manipulation ab oder legt sie fest.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für:

Produkt Versionen
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10