ManipulationDeltaEventArgs Klass

Definition

Innehåller data för ManipulationDelta händelsen.

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
Arv
ManipulationDeltaEventArgs

Exempel

I följande exempel visas en händelsehanterare för ManipulationDelta händelsen. I exemplet används egenskapen DeltaManipulation för att flytta, ändra storlek på och rotera en Rectangle. Exemplet kontrollerar också om händelsen ManipulationDelta inträffade under trögheten och om rektangeln vidrör kanten av ett fönster. Om dessa fall är sanna stoppar programmet manipuleringen för att förhindra att rektangeln lämnar programmets synliga område. Det här exemplet är en del av ett större exempel i Genomgång: Skapa ditt First Touch-program.

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

Kommentarer

Klassen ManipulationDeltaEventArgs innehåller data om ändringar i en manipuleringsposition. Egenskapen DeltaManipulation innehåller de ändringar som har inträffat sedan den senaste ManipulationDelta händelsen inträffade. Egenskapen CumulativeManipulation innehåller de totala ändringar som har inträffat för den aktuella manipulationen. Du använder en av dessa egenskaper för att transformera det manipulerade objektet.

Du kan avsluta en manipulation genom att anropa Complete metoden eller tvinga manipulationen till tröghet genom att anropa StartInertia metoden.

Egenskaper

Name Description
CumulativeManipulation

Hämtar de ackumulerade ändringarna av den aktuella manipulationen.

DeltaManipulation

Hämtar de senaste ändringarna av den aktuella manipulationen.

Device

Hämtar den indataenhet som initierade den här händelsen.

(Ärvd från InputEventArgs)
Handled

Hämtar eller anger ett värde som anger det aktuella tillståndet för händelsehanteringen för en dirigerad händelse när den färdas längs vägen.

(Ärvd från RoutedEventArgs)
IsInertial

Hämtar ett värde som anger om händelsen ManipulationDelta inträffar under trögheten.

ManipulationContainer

Hämtar containern som definierar koordinaterna för manipuleringen.

ManipulationOrigin

Hämtar den punkt från vilken manipuleringen kom från.

Manipulators

Hämtar en samling objekt som representerar beröringskontakterna för manipulationen.

OriginalSource

Hämtar den ursprungliga rapporteringskällan enligt ren träfftestning, före eventuell Source justering av en överordnad klass.

(Ärvd från RoutedEventArgs)
RoutedEvent

Hämtar eller anger den associerade med den här RoutedEvent instansenRoutedEventArgs.

(Ärvd från RoutedEventArgs)
Source

Hämtar eller anger en referens till objektet som skapade händelsen.

(Ärvd från RoutedEventArgs)
Timestamp

Hämtar den tid då den här händelsen inträffade.

(Ärvd från InputEventArgs)
Velocities

Hämtar frekvensen för de senaste ändringarna i manipulationen.

Metoder

Name Description
Cancel()

Avbryter manipuleringen.

Complete()

Slutför manipuleringen utan tröghet.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
InvokeEventHandler(Delegate, Object)

Anropar händelsehanterare på ett typspecifikt sätt, vilket kan öka händelsesystemets effektivitet.

(Ärvd från InputEventArgs)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
OnSetSource(Object)

När det åsidosättas i en härledd klass, tillhandahåller en startpunkt för återanrop när värdet för Source egenskapen för en instans ändras.

(Ärvd från RoutedEventArgs)
ReportBoundaryFeedback(ManipulationDelta)

Anger att manipuleringen har gått över vissa gränser.

StartInertia()

Startar tröghet vid manipulering genom att ignorera efterföljande kontaktrörelser och höja ManipulationInertiaStarting händelsen.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Gäller för