Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés
Esta documentación está archivada y no tiene mantenimiento.

UIElement.ManipulationDelta (Evento)

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)
XMLNS para XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

public event EventHandler<ManipulationDeltaEventArgs> ManipulationDelta
<object ManipulationDelta="EventHandler<ManipulationDeltaEventArgs>" .../>

Campo de identificador

ManipulationDeltaEvent

Estrategia de enrutamiento

Propagación

Delegate

EventHandler<TEventArgs> de tipo ManipulationDeltaEventArgs.

El evento ManipulationDelta se produce varias veces cuando el usuario arrastra los dedos sobre la pantalla durante una manipulación y de nuevo cuando la inercia se produce. Puede usar la propiedad IsInertial para comprobar si el evento se está produciendo durante la inercia.

El elemento con el evento ManipulationDelta se produce y no se ve afectado forma alguna cuando el evento se produce. Debe proporcionar la lógica al elemento que será manipulado. Las propiedades DeltaManipulation y CumulativeManipulation, que son del tipo ManipulationDelta, contienen los datos sobre cómo cambia y se interpreta la posición de las manipulaciones como mover, cambia el tamaño o girar un objeto. Aplica esa información al elemento que será manipulado.

Para obtener más información sobre las manipulaciones, vea Información general sobre acciones del usuario. Para obtener un ejemplo de una aplicación que responde a manipulaciones, vea Tutorial: Crear su primera aplicación táctil

En el siguiente ejemplo se muestra un controlador de eventos para el evento ManipulationDelta. En el ejemplo se usa la propiedad DeltaManipulation para mover, cambiar el tamaño y girar a Rectangle. En el ejemplo también se comprueba si el evento ManipulationDelta se produjo durante la inercia y si el rectángulo toca el borde de una ventana. Si esos casos son true, 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 mayor en Tutorial: Crear su primera aplicación táctil.


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

Compatible con: 4

.NET Framework Client Profile

Compatible con: 4

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Mostrar: