ManipulationDelta Class

 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Contains transformation data that is accumulated when manipulation events occur.

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

System.Object
  System.Windows.Input.ManipulationDelta

Public Class ManipulationDelta

NameDescription
System_CAPS_pubmethodManipulationDelta(Vector, Double, Vector, Vector)

Initializes a new instance of the ManipulationDelta class.

NameDescription
System_CAPS_pubpropertyExpansion

Gets or sets the amount the manipulation has resized in device-independent units (1/96th inch per unit).

System_CAPS_pubpropertyRotation

Gets or sets the rotation of the manipulation in degrees.

System_CAPS_pubpropertyScale

Gets or sets the amount the manipulation has resized as a multiplier.

System_CAPS_pubpropertyTranslation

Gets or sets the linear motion of the manipulation.

NameDescription
System_CAPS_pubmethodEquals(Object)

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_protmethodFinalize()

Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)

System_CAPS_pubmethodGetHashCode()

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_protmethodMemberwiseClone()

Creates a shallow copy of the current Object.(Inherited from Object.)

System_CAPS_pubmethodToString()

Returns a string that represents the current object.(Inherited from Object.)

The ManipulationDelta class contains information about the changes in the position of a manipulation. Windows Presentation Foundation (WPF) interprets the changes as a Translation, Expansion, or Rotation. When the ManipulationDelta event occurs on a UIElement, use the properties on a ManipulationDelta object to transform the object that should be manipulated. The ManipulationDeltaEventArgs class provides two properties of type ManipulationDelta: DeltaManipulation and CumulativeManipulation.

For more information about manipulations, see the Input Overview. For an example of an application that responds to manipulations, see Walkthrough: Creating Your First Touch Application.

The following example shows an event handler for the ManipulationDelta event. The example applies the Translation, Scale, and Rotation properties to move, resize, and rotate a Rectangle. This example is part of a larger example in Walkthrough: Creating Your First Touch Application.

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

.NET Framework
Available since 4.0
Silverlight
Available since 4.0
Windows Phone Silverlight
Available since 7.0

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: