Partager via


ManipulationDelta Classe

Définition

Contient les données de transformation accumulées lorsque des événements de manipulation se produisent.

public ref class ManipulationDelta
public class ManipulationDelta
type ManipulationDelta = class
Public Class ManipulationDelta
Héritage
ManipulationDelta

Exemples

L’exemple suivant montre un gestionnaire d’événements pour l’événement ManipulationDelta . L’exemple applique les Translationpropriétés , Scaleet Rotation pour déplacer, redimensionner et faire pivoter un Rectangle. Cet exemple fait partie d’un exemple plus large dans Procédure pas à pas : création de votre application first touch.

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

Remarques

La ManipulationDelta classe contient des informations sur les modifications apportées à la position d’une manipulation. Windows Presentation Foundation (WPF) interprète les modifications comme un Translation, Expansionou Rotation. Lorsque l’événement ManipulationDelta se produit sur un UIElement, utilisez les propriétés d’un ManipulationDelta objet pour transformer l’objet qui doit être manipulé. La ManipulationDeltaEventArgs classe fournit deux propriétés de type ManipulationDelta: DeltaManipulation et CumulativeManipulation.

Pour plus d’informations sur les manipulations, consultez Vue d’ensemble des entrées. Pour obtenir un exemple d’application qui répond aux manipulations, consultez Procédure pas à pas : création de votre première application tactile.

Constructeurs

ManipulationDelta(Vector, Double, Vector, Vector)

Initialise une nouvelle instance de la classe ManipulationDelta.

Propriétés

Expansion

Obtient ou définit la quantité que la manipulation a redimensionnée en unités indépendantes de l’appareil (1/96e pouce par unité).

Rotation

Obtient ou définit la rotation de la manipulation en degrés.

Scale

Obtient ou définit la valeur de redimensionnement de la manipulation, sous forme de multiplicateur.

Translation

Obtient ou définit le mouvement linéaire de la manipulation.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à