Rotation Property
Collapse the table of content
Expand the table of content

ManipulationDelta.Rotation Property

.NET Framework (current version)
 

Gets or sets the rotation of the manipulation in degrees.

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

public double Rotation { get; private set; }

Property Value

Type: System.Double

The rotation of the manipulation in degrees.

The Rotation property reports the way a manipulation is interpreted as rotating around an axis. The axis is usually the point between the two points of contact that initiated the manipulation.

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.

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
Available since 4.0
Return to top
Show:
© 2016 Microsoft