Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

UIElement.ManipulationDelta-Ereignis

.NET Framework (current version)
 

Veröffentlicht: Oktober 2016

Tritt auf, wenn das Eingabegerät während der Bearbeitung Position ändert.

Namespace:   System.Windows
Assembly:  PresentationCore (in PresentationCore.dll)

public event EventHandler<ManipulationDeltaEventArgs> ManipulationDelta

Die ManipulationDelta -Ereignis tritt mehrmals auf, wenn der Benutzer während einer Manipulation Finger über den Bildschirm zieht, und nochmals, wenn Trägheit auftritt. Sie können die IsInertial -Eigenschaft überprüft, ob das Ereignis während der Trägheit auftritt.

Das Element mit ManipulationDelta Ereignis tritt auf, ist nicht in keiner Weise verändert, wenn das Ereignis auftritt. Sie müssen die Logik für das Element angeben, die bearbeitet werden soll. Die CumulativeManipulation und DeltaManipulation Eigenschaften, die vom Typ ManipulationDelta, enthalten Daten zum Ändern der Position der Manipulationen und als verschieben, Ändern der Größe oder Drehen eines Objekts interpretiert. Sie wenden diese Informationen auf das Element, das bearbeitet werden soll.

Weitere Informationen zu Manipulationen, finden Sie unter der Input Overview. Ein Beispiel einer Anwendung, die auf Manipulationen reagiert, finden Sie unter Walkthrough: Creating Your First Touch Application.

Das folgende Beispiel zeigt einen Ereignishandler für das ManipulationDelta Ereignis. Im Beispiel wird die DeltaManipulation Eigenschaft zu verschieben, skalieren und Rotieren einer Rectangle. Im Beispiel wird auch überprüft, ob die ManipulationDelta Ereignis aufgetreten ist, während der Trägheit und gibt an, ob das Rechteck den Rand eines Fensters berührt. Wenn die Fälle zutrifft, reagiert die Anwendung die Manipulation, um zu verhindern, dass das Rechteck lassen den sichtbaren Bereich der Anwendung. Dieses Beispiel ist Teil eines umfangreicheren Beispiels im 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;
}

.NET Framework
Verfügbar seit 4.0
Silverlight
Verfügbar seit 4.0
Windows Phone Silverlight
Verfügbar seit 7.0
Zurück zum Anfang
Anzeigen: