(0) exportieren Drucken
Alle erweitern
Erweitern Minimieren
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

UIElement.ManipulationDelta-Ereignis

Tritt ein, wenn sich die Position des Eingabegeräts während einer Bearbeitung ändert.

Namespace:  System.Windows
Assembly:  PresentationCore (in PresentationCore.dll)
XMLNS für XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

public event EventHandler<ManipulationDeltaEventArgs> ManipulationDelta
<object ManipulationDelta="EventHandler<ManipulationDeltaEventArgs>" .../>

Das ManipulationDelta-Ereignis tritt mehrmals ein, wenn der Benutzer während einer Manipulation Finger über den Bildschirm zieht, und nochmals, wenn Trägheit auftritt. Mit der IsInertial-Eigenschaft können Sie bestimmen, ob ein das Ereignis während der Trägheit auftritt.

Wenn das Ereignis eintritt, hat es keine Auswirkungen auf das Element, für das das ManipulationDelta-Ereignis eintritt. Sie müssen die Logik für das Element bereitstellen, das bearbeitet werden soll. Die CumulativeManipulation-Eigenschaft und DeltaManipulation-Eigenschaft, die den Typ ManipulationDelta haben, enthalten Daten darüber, wie die Position der Manipulation sich ändern und hat als Verschieben, Größenanpassung oder Drehen eines Objekts interpretiert werden. Sie übernehmen diese Informationen für das Element, das bearbeitet werden soll.

Weitere Informationen zu Bearbeitungen finden Sie unter Übersicht über die Eingabe. Ein Beispiel für eine Anwendung, die auf Manipulationen reagiert, finden Sie unter Exemplarische Vorgehensweise: Erstellen der ersten Fingereingabeanwendung.

Im folgenden Beispiel wird ein Ereignishandler für das ManipulationDelta-Ereignis veranschaulicht. Im Beispiel wird die DeltaManipulation-Eigenschaft verwendet, um ein Rectangle zu verschieben, zu drehen oder dessen Größe zu ändern. Das Beispiel überprüft auch, ob das ManipulationDelta-Ereignis während der Trägheit aufgetreten ist und ob das Rechteck den Rand eines Fensters berührt. Wenn jene Fälle den Wert true haben, beendet die Anwendung die Manipulation, um zu verhindern, dass das Rechteck die sichtbare Fläche der Anwendung verlässt. Dieses Beispiel ist ein Teil eines umfangreicheren Beispiels in Exemplarische Vorgehensweise: Erstellen der ersten Fingereingabeanwendung.


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

Unterstützt in: 4.5, 4

.NET Framework Client Profile

Unterstützt in: 4

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft