ManipulationDelta 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.
Contiene i dati di trasformazione accumulati quando si verificano gli eventi di manipolazione.
public ref class ManipulationDelta
public class ManipulationDelta
type ManipulationDelta = class
Public Class ManipulationDelta
- Ereditarietà
-
ManipulationDelta
Esempio
Nell'esempio seguente viene illustrato un gestore eventi per l'evento ManipulationDelta . L'esempio applica le Translationproprietà , Scalee Rotation per spostare, ridimensionare e ruotare un oggetto Rectangle. 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 ManipulationDelta classe contiene informazioni sulle modifiche nella posizione di una manipolazione. Windows Presentation Foundation (WPF) interpreta le modifiche come Translation, Expansiono Rotation. Quando l'evento ManipulationDelta si verifica in un UIElementoggetto , utilizzare le proprietà di un ManipulationDelta oggetto per trasformare l'oggetto che deve essere modificato. La ManipulationDeltaEventArgs classe fornisce due proprietà di tipo ManipulationDelta: DeltaManipulation e CumulativeManipulation.
Per altre informazioni sulle modifiche, vedere Cenni preliminari sull'input. Per un esempio di applicazione che risponde alle modifiche, vedere Procedura dettagliata: Creazione della prima applicazione touch.
Costruttori
ManipulationDelta(Vector, Double, Vector, Vector) |
Inizializza una nuova istanza della classe ManipulationDelta. |
Proprietà
Expansion |
Ottiene o imposta la quantità di ridimensionamento della manipolazione in unità indipendenti dal dispositivo (1/96° pollice per unità). |
Rotation |
Ottiene o imposta la rotazione della manipolazione in gradi. |
Scale |
Ottiene o imposta la quantità di ridimensionamento della manipolazione come moltiplicatore. |
Translation |
Ottiene o imposta il movimento lineare della manipolazione. |
Metodi
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) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |