ManipulationDeltaEventArgs Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Proporciona datos para el evento ManipulationDelta.
public ref class ManipulationDeltaEventArgs sealed : System::Windows::Input::InputEventArgs
public sealed class ManipulationDeltaEventArgs : System.Windows.Input.InputEventArgs
type ManipulationDeltaEventArgs = class
inherit InputEventArgs
Public NotInheritable Class ManipulationDeltaEventArgs
Inherits InputEventArgs
- Herencia
Ejemplos
En el ejemplo siguiente se muestra un controlador de eventos para el ManipulationDelta evento. En el ejemplo se usa la DeltaManipulation propiedad para mover, cambiar el tamaño y girar .Rectangle En el ejemplo también se comprueba si el evento se produjo durante la ManipulationDelta inercia y si el rectángulo está tocando el borde de una ventana. Si esos casos son true, la aplicación detiene la manipulación para evitar que el rectángulo salga del área visible de la aplicación. Este ejemplo forma parte de un ejemplo más grande 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;
}
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 ManipulationDeltaEventArgs clase contiene datos sobre los cambios en la posición de una manipulación. La DeltaManipulation propiedad contiene los cambios que se produjeron desde el último ManipulationDelta evento. La CumulativeManipulation propiedad contiene los cambios totales que se produjeron para la manipulación actual. Use una de esas propiedades para transformar el objeto manipulado.
Para finalizar una manipulación, llame al Complete método o obligue a la manipulación a la inercia llamando al StartInertia método .
Propiedades
CumulativeManipulation |
Obtiene los cambios acumulados de la manipulación actual. |
DeltaManipulation |
Obtiene los cambios más recientes de la manipulación actual. |
Device |
Obtiene el dispositivo de entrada que inició este evento. (Heredado de InputEventArgs) |
Handled |
Obtiene o establece un valor que indica el estado actual del control de eventos para un evento enrutado cuando recorre la ruta. (Heredado de RoutedEventArgs) |
IsInertial |
Obtiene un valor que indica si el evento ManipulationDelta se produce durante inercia. |
ManipulationContainer |
Obtiene el contenedor que define las coordenadas para la manipulación. |
ManipulationOrigin |
Obtiene el punto en el que se origina la manipulación. |
Manipulators |
Obtiene una colección de objetos que representa los contactos táctiles para la manipulación. |
OriginalSource |
Obtiene el origen inicial de los informes determinado por pruebas de acceso puro, antes de que una clase primaria realice posibles ajustes de Source. (Heredado de RoutedEventArgs) |
RoutedEvent |
Obtiene o establece el RoutedEvent asociado a esta instancia RoutedEventArgs. (Heredado de RoutedEventArgs) |
Source |
Obtiene o establece una referencia al objeto que generó el evento. (Heredado de RoutedEventArgs) |
Timestamp |
Obtiene la hora a la que se produjo este evento. (Heredado de InputEventArgs) |
Velocities |
Obtiene la velocidad de los cambios más recientes que se producen en la manipulación. |
Métodos
Cancel() |
Cancela la manipulación. |
Complete() |
Completa la manipulación sin inercia. |
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) |
InvokeEventHandler(Delegate, Object) |
Invoca los controladores de eventos de una manera específica del tipo, lo que puede aumentar la eficacia del sistema de eventos. (Heredado de InputEventArgs) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
OnSetSource(Object) |
Cuando se invalida en una clase derivada, proporciona un punto de entrada de devolución de llamada de notificación cada vez que cambia el valor de propiedad Source de una instancia. (Heredado de RoutedEventArgs) |
ReportBoundaryFeedback(ManipulationDelta) |
Especifica que la manipulación ha excedido ciertos límites. |
StartInertia() |
Inicia la inercia en la manipulación omitiendo los movimientos de contacto subsiguientes y generando el evento ManipulationInertiaStarting. |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |