Freigeben über


ManipulationDeltaEventArgs Klasse

Definition

Stellt Daten für das ManipulationDelta-Ereignis bereit.

public ref class ManipulationDeltaEventArgs sealed : System::Windows::Input::InputEventArgs
public sealed class ManipulationDeltaEventArgs : System.Windows.Input.InputEventArgs
type ManipulationDeltaEventArgs = class
    inherit InputEventArgs
Public NotInheritable Class ManipulationDeltaEventArgs
Inherits InputEventArgs
Vererbung
ManipulationDeltaEventArgs

Beispiele

Das folgende Beispiel zeigt einen Ereignishandler für das ManipulationDelta Ereignis. Im Beispiel wird die DeltaManipulation -Eigenschaft verwendet, um eine zu verschieben, zu ändern und zu Rectangledrehen. Im Beispiel wird auch überprüft, ob das Ereignis während der ManipulationDelta Trägheit aufgetreten ist und ob das Rechteck den Rand eines Fensters berührt. Wenn diese Fälle zutreffen, beendet die Anwendung die Bearbeitung, um zu verhindern, dass das Rechteck den sichtbaren Bereich der Anwendung verlässt. Dieses Beispiel ist Teil eines größeren Beispiels unter Exemplarische Vorgehensweise: Erstellen Ihrer First Touch-Anwendung.

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 ManipulationDeltaEventArgs -Klasse enthält Daten zu Änderungen an der Position einer Bearbeitung. Die DeltaManipulation -Eigenschaft enthält die Änderungen, die seit dem letzten ManipulationDelta Ereignis aufgetreten sind. Die CumulativeManipulation -Eigenschaft enthält die Gesamtanzahl der Änderungen, die für die aktuelle Bearbeitung aufgetreten sind. Sie verwenden eine dieser Eigenschaften, um das bearbeitete Objekt zu transformieren.

Sie können eine Manipulation beenden, indem Sie die Complete -Methode aufrufen oder die Manipulation durch Aufrufen der -Methode in die Unbewegheit erzwingen StartInertia .

Eigenschaften

CumulativeManipulation

Ruft die kumulierten Änderungen der aktuellen Bearbeitung ab.

DeltaManipulation

Ruft die letzten Änderungen der aktuellen Bearbeitung ab.

Device

Ruft das Eingabegerät ab, das dieses Ereignis initiiert hat.

(Geerbt von InputEventArgs)
Handled

Ruft einen Wert ab, der den aktuellen Zustand der Ereignisbehandlung für ein Routingereignis beim Durchlaufen der Route angibt, oder legt diesen fest.

(Geerbt von RoutedEventArgs)
IsInertial

Ruft einen Wert ab, der angibt, ob das ManipulationDelta-Ereignis während der Trägheit auftritt.

ManipulationContainer

Ruft den Container ab, der die Koordinaten für die Bearbeitung definiert.

ManipulationOrigin

Ruft den Punkt ab, an dem die Bearbeitung entstanden ist.

Manipulators

Ruft eine Auflistung von Objekten ab, die die Fingereingabekontakte für die Manipulation darstellt.

OriginalSource

Ruft die ursprünglich meldende Quelle ab, die durch einen reinen Treffertest bestimmt wurde, bevor eine mögliche Source-Anpassung durch eine übergeordnete Klasse erfolgt.

(Geerbt von RoutedEventArgs)
RoutedEvent

Ruft die RoutedEvent-Instanz ab, die dieser RoutedEventArgs-Instanz zugeordnet ist, oder legt die Instanz fest.

(Geerbt von RoutedEventArgs)
Source

Ruft einen Verweis auf das Objekt ab, das das Ereignis ausgelöst hat, oder legt diesen fest.

(Geerbt von RoutedEventArgs)
Timestamp

Ruft die Zeit ab, zu der dieses Ereignis eingetreten ist.

(Geerbt von InputEventArgs)
Velocities

Ruft die Raten der letzten Änderungen an der Bearbeitung ab.

Methoden

Cancel()

Bricht die Bearbeitung ab.

Complete()

Schließt die Bearbeitung ohne Trägheit ab.

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)
InvokeEventHandler(Delegate, Object)

Ruft Ereignishandler auf typspezifische Weise auf, wodurch sich die Effizienz des Ereignissystems erhöhen kann.

(Geerbt von InputEventArgs)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
OnSetSource(Object)

Gibt beim Überschreiben in einer abgeleiteten Klasse einen Einstiegspunkt für Benachrichtigungsrückrufe an, wenn der Wert der Source-Eigenschaft einer Instanz geändert wird.

(Geerbt von RoutedEventArgs)
ReportBoundaryFeedback(ManipulationDelta)

Gibt an, dass die Manipulation über bestimmte Grenzen hinausgegangen ist.

StartInertia()

Startet Trägheit auf der Bearbeitung durch das Ignorieren von nachfolgenden Kontaktbewegungen und Auslösen des ManipulationInertiaStarting-Ereignisses.

ToString()

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

(Geerbt von Object)

Gilt für: