ManipulationDeltaEventArgs Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Fornisce i dati per l'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
- Ereditarietà
Esempio
Nell'esempio seguente viene illustrato un gestore eventi per l'evento ManipulationDelta . Nell'esempio viene usata la DeltaManipulation proprietà per spostare, ridimensionare e ruotare un Rectangleoggetto . L'esempio verifica anche se l'evento si è verificato durante l'inerzia e se il ManipulationDelta rettangolo tocca il bordo di una finestra. Se questi casi sono true, l'applicazione arresta la manipolazione per impedire al rettangolo di uscire dall'area visibile dell'applicazione. Questo esempio fa parte di un esempio più ampio in Procedura dettagliata: Creazione della prima applicazione 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
Commenti
La ManipulationDeltaEventArgs classe contiene dati sulle modifiche nella posizione di una manipolazione. La DeltaManipulation proprietà contiene le modifiche che si sono verificate dall'ultimo ManipulationDelta evento. La CumulativeManipulation proprietà contiene le modifiche totali che si sono verificate per la manipolazione corrente. Si usa una di queste proprietà per trasformare l'oggetto modificato.
È possibile terminare una manipolazione chiamando il Complete metodo o forzando la manipolazione in inerzia chiamando il StartInertia metodo .
Proprietà
CumulativeManipulation |
Ottiene le modifiche accumulate della manipolazione corrente. |
DeltaManipulation |
Ottiene le modifiche più recenti della manipolazione corrente. |
Device |
Ottiene il dispositivo di input che ha avviato questo evento. (Ereditato da InputEventArgs) |
Handled |
Ottiene o imposta un valore che indica lo stato presente della gestione degli eventi per un evento indirizzato quando percorre la route. (Ereditato da RoutedEventArgs) |
IsInertial |
Ottiene un valore che indica se l'evento ManipulationDelta si verifica durante l'inerzia. |
ManipulationContainer |
Ottiene il contenitore che definisce le coordinate per la manipolazione. |
ManipulationOrigin |
Ottiene il punto da cui ha origine la manipolazione. |
Manipulators |
Ottiene un insieme di oggetti che rappresenta i contatti tocco per la modifica. |
OriginalSource |
Ottiene l'origine di segnalazione originale in base a quanto determinato dall'hit testing puro, prima di qualsiasi possibile modifica di Source da parte di una classe padre. (Ereditato da RoutedEventArgs) |
RoutedEvent |
Ottiene o imposta l'oggetto RoutedEvent associato all'istanza di RoutedEventArgs. (Ereditato da RoutedEventArgs) |
Source |
Ottiene o imposta un riferimento all'oggetto che ha generato l'evento. (Ereditato da RoutedEventArgs) |
Timestamp |
Ottiene la data e l'ora in cui si è verificato l'evento. (Ereditato da InputEventArgs) |
Velocities |
Ottiene la frequenza delle modifiche più recenti alla manipolazione. |
Metodi
Cancel() |
Annulla la modifica. |
Complete() |
Completa la modifica senza inerzia. |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
InvokeEventHandler(Delegate, Object) |
Richiama i gestori eventi in una modalità specifica del tipo, che può aumentare l'efficienza del sistema di eventi. (Ereditato da InputEventArgs) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
OnSetSource(Object) |
Se sottoposto a override in una classe derivata, fornisce un punto di ingresso di callback di notifica a ogni modifica del valore della proprietà Source di un'istanza. (Ereditato da RoutedEventArgs) |
ReportBoundaryFeedback(ManipulationDelta) |
Specifica che la modifica è andata oltre limiti determinati. |
StartInertia() |
Avvia l'inerzia sulla manipolazione ignorando i movimenti di contatto successivi e generando l'evento ManipulationInertiaStarting. |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |