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 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 utilizzata la DeltaManipulation proprietà per spostare, ridimensionare e ruotare un oggetto Rectangle. L'esempio controlla inoltre se l'evento si è verificato durante l'inerzia ManipulationDelta e se il rettangolo sta toccando il bordo di una finestra. Se questi casi sono true, l'applicazione interrompe 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 apportate dopo l'ultimo ManipulationDelta evento. La CumulativeManipulation proprietà contiene le modifiche totali apportate per la manipolazione corrente. Per trasformare l'oggetto modificato, utilizzare una di queste proprietà.
È possibile terminare una manipolazione chiamando il Complete metodo o forzando la manipolazione in inerzia chiamando il StartInertia metodo .
Proprietà
| Nome | Descrizione |
|---|---|
| CumulativeManipulation |
Ottiene le modifiche cumulative 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 corrente della gestione degli eventi per un evento indirizzato durante il viaggio della route. (Ereditato da RoutedEventArgs) |
| IsInertial |
Ottiene un valore che indica se l'evento si verifica durante l'inerzia ManipulationDelta . |
| ManipulationContainer |
Ottiene il contenitore che definisce le coordinate per la manipolazione. |
| ManipulationOrigin |
Ottiene il punto da cui ha avuto origine la manipolazione. |
| Manipulators |
Ottiene un insieme di oggetti che rappresenta i contatti tocco per la manipolazione. |
| OriginalSource |
Ottiene l'origine di creazione di report originale, come determinato dall'hit testing puro, prima di qualsiasi possibile Source rettifica da parte di una classe padre. (Ereditato da RoutedEventArgs) |
| RoutedEvent |
Ottiene o imposta l'oggetto RoutedEvent associato a questa RoutedEventArgs istanza. (Ereditato da RoutedEventArgs) |
| Source |
Ottiene o imposta un riferimento all'oggetto che ha generato l'evento. (Ereditato da RoutedEventArgs) |
| Timestamp |
Ottiene l'ora in cui si è verificato questo evento. (Ereditato da InputEventArgs) |
| Velocities |
Ottiene la frequenza delle modifiche più recenti alla manipolazione. |
Metodi
| Nome | Descrizione |
|---|---|
| Cancel() |
Annulla la manipolazione. |
| Complete() |
Completa la manipolazione 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 il Type dell'istanza corrente. (Ereditato da Object) |
| InvokeEventHandler(Delegate, Object) |
Richiama i gestori eventi in modo specifico del tipo, che può aumentare l'efficienza del sistema eventi. (Ereditato da InputEventArgs) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| OnSetSource(Object) |
Quando sottoposto a override in una classe derivata, fornisce un punto di ingresso di callback di notifica ogni volta che il valore della proprietà di un'istanza Source cambia. (Ereditato da RoutedEventArgs) |
| ReportBoundaryFeedback(ManipulationDelta) |
Specifica che la manipolazione ha superato determinati limiti. |
| StartInertia() |
Inizia 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) |