Compartir vía


ManipulationDelta Clase

Definición

Contiene los datos de la transformación que se acumulan cuando se producen eventos de manipulación.

public ref class ManipulationDelta
public class ManipulationDelta
type ManipulationDelta = class
Public Class ManipulationDelta
Herencia
ManipulationDelta

Ejemplos

En el ejemplo siguiente se muestra un controlador de eventos para el ManipulationDelta evento. En el ejemplo se aplican las Translationpropiedades , Scaley Rotation para mover, cambiar el tamaño y girar un Rectangle. Este ejemplo forma parte de un ejemplo más grande de 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;
}
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

Comentarios

La ManipulationDelta clase contiene información sobre los cambios en la posición de una manipulación. Windows Presentation Foundation (WPF) interpreta los cambios como , TranslationExpansiono Rotation. Cuando el ManipulationDelta evento se produce en , UIElementuse las propiedades de un ManipulationDelta objeto para transformar el objeto que se debe manipular. La ManipulationDeltaEventArgs clase proporciona dos propiedades de tipo ManipulationDelta: DeltaManipulation y CumulativeManipulation.

Para obtener más información sobre las manipulaciones, consulte La introducción a la entrada. Para obtener un ejemplo de una aplicación que responde a manipulaciones, consulte Tutorial: Creación de la aplicación First Touch.

Constructores

ManipulationDelta(Vector, Double, Vector, Vector)

Inicializa una nueva instancia de la clase ManipulationDelta.

Propiedades

Expansion

Obtiene o establece la cantidad en la que la manipulación ha cambiado de tamaño en unidades independientes del dispositivo (1/96 pulgadas por unidad).

Rotation

Obtiene o establece la rotación de la manipulación en grados.

Scale

Obtiene o establece el cambio de tamaño de la manipulación expresado como un multiplicador.

Translation

Obtiene o establece el movimiento lineal de la manipulación.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a