Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Evento UIElement.ManipulationDelta

 

Publicado: octubre de 2016

Se produce cuando el dispositivo de entrada cambia de posición durante una manipulación.

Espacio de nombres:   System.Windows
Ensamblado:  PresentationCore (en PresentationCore.dll)

public event EventHandler<ManipulationDeltaEventArgs> ManipulationDelta

El ManipulationDelta evento aparece varias veces cuando el usuario arrastra dedos sobre la pantalla durante una manipulación y nuevo cuando se produce la inercia. Puede usar el IsInertial propiedad para comprobar si el evento tiene lugar durante la inercia.

El elemento con el ManipulationDelta caso no se ve afectado en modo alguno cuando se produce el evento. Debe proporcionar la lógica para el elemento que se pueden manipular. El CumulativeManipulation y DeltaManipulation propiedades, que son de tipo ManipulationDelta, contienen datos acerca de cómo cambiar la posición de las manipulaciones y se interpretan como mover, cambiar el tamaño o girar un objeto. Esa información se aplican al elemento que es para su manipulación.

Para obtener más información acerca de las manipulaciones, vea el Input Overview. Para obtener un ejemplo de una aplicación que responde a manipulaciones, vea Walkthrough: Creating Your First Touch Application.

Campo identificador

ManipulationDeltaEvent

Estrategia de enrutamiento

Propagación

delegate

EventHandler<TEventArgs>de tipo ManipulationDeltaEventArgs.

En el ejemplo siguiente se muestra un controlador de eventos para el ManipulationDelta eventos. El ejemplo se utiliza la DeltaManipulation propiedad para mover, cambiar el tamaño y girar un Rectangle. El ejemplo también se comprueba si el ManipulationDelta se ha producido un evento durante la inercia y si el rectángulo toca el borde de una ventana. Si se cumplen esos casos, la aplicación detiene la manipulación para evitar que el rectángulo deje el área visible de la aplicación. Este ejemplo forma parte de un ejemplo más extenso en 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
Disponible desde 4.0
Silverlight
Disponible desde 4.0
Windows Phone Silverlight
Disponible desde 7.0
Volver al principio
Mostrar: