ManipulationDeltaEventArgs Osztály

Definíció

Adatokat biztosít az ManipulationDelta eseményhez.

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
Öröklődés
ManipulationDeltaEventArgs

Példák

Az alábbi példa egy eseménykezelőt mutat be az ManipulationDelta eseményhez. A példa a tulajdonságot használja a DeltaManipulation tulajdonság áthelyezéséhez, átméretezéséhez és elforgatásához Rectangle. A példa azt is ellenőrzi, hogy az ManipulationDelta esemény a tehetetlenség során történt-e, és hogy a téglalap megérinti-e az ablak szélét. Ha ezek az esetek igazak, az alkalmazás leállítja a manipulációt, hogy megakadályozza, hogy a téglalap elhagyja az alkalmazás látható területét. Ez a példa egy nagyobb példa része az útmutatóban: Az első érintéses alkalmazás létrehozása.

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

Megjegyzések

Az ManipulationDeltaEventArgs osztály adatokat tartalmaz a manipuláció pozíciójának változásairól. A DeltaManipulation tulajdonság az utolsó ManipulationDelta esemény óta bekövetkezett módosításokat tartalmazza. A CumulativeManipulation tulajdonság az aktuális manipulációhoz végrehajtott összes módosítást tartalmazza. Ezen tulajdonságok egyikével alakíthatja át a manipulált objektumot.

A manipuláció befejezéséhez hívja meg a metódust Complete , vagy kényszerítse a manipulációt tehetetlenségre a StartInertia metódus meghívásával.

Tulajdonságok

Name Description
CumulativeManipulation

Lekéri az aktuális manipuláció kumulált módosításait.

DeltaManipulation

Lekéri az aktuális manipuláció legutóbbi módosításait.

Device

Lekéri az eseményt kezdeményező bemeneti eszközt.

(Öröklődés forrása InputEventArgs)
Handled

Lekéri vagy beállít egy értéket, amely jelzi az útvonalon áthaladó esemény eseménykezelésének jelenlegi állapotát.

(Öröklődés forrása RoutedEventArgs)
IsInertial

Olyan értéket kap, amely jelzi, hogy az ManipulationDelta esemény a tehetetlenség során következik-e be.

ManipulationContainer

Lekéri a manipuláció koordinátáit meghatározó tárolót.

ManipulationOrigin

Lekéri azt a pontot, ahonnan a manipuláció származik.

Manipulators

Olyan objektumgyűjteményt kap, amely a manipuláció érintéses névjegyeit jelöli.

OriginalSource

Lekéri az eredeti jelentéskészítési forrást a tiszta találatos tesztelés alapján, mielőtt a szülőosztály bármilyen lehetséges Source módosítást végezne.

(Öröklődés forrása RoutedEventArgs)
RoutedEvent

Lekéri vagy beállítja a RoutedEvent példányhoz társított példányt RoutedEventArgs .

(Öröklődés forrása RoutedEventArgs)
Source

Lekéri vagy beállítja az eseményt okozó objektumra mutató hivatkozást.

(Öröklődés forrása RoutedEventArgs)
Timestamp

Lekéri az esemény bekövetkezésének időpontját.

(Öröklődés forrása InputEventArgs)
Velocities

Lekéri a manipuláció legutóbbi módosításainak sebességét.

Metódusok

Name Description
Cancel()

Megszakítja a manipulációt.

Complete()

Végrehajtja a manipulációt tehetetlenség nélkül.

Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
InvokeEventHandler(Delegate, Object)

Típusspecifikus módon hívja meg az eseménykezelőket, ami növelheti az eseményrendszer hatékonyságát.

(Öröklődés forrása InputEventArgs)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
OnSetSource(Object)

Ha egy származtatott osztályban felül van bírálva, egy értesítési visszahívási belépési pontot biztosít, amikor egy példány tulajdonságának Source értéke megváltozik.

(Öröklődés forrása RoutedEventArgs)
ReportBoundaryFeedback(ManipulationDelta)

Azt határozza meg, hogy a manipuláció túllépett bizonyos határokon.

StartInertia()

A manipuláció tehetetlenséget indít el a későbbi érintkezési mozgások figyelmen kívül hagyásával és az ManipulationInertiaStarting esemény felemelésével.

ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

A következőre érvényes: