ManipulationDeltaEventArgs Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Adatokat biztosít az ManipulationDelta eseményhez.
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
- Öröklődés
Példák
Az alábbi példa egy eseménykezelőt mutat be az ManipulationDelta eseményhez. A példa a tulajdonságot használja a DeltaManipulation tulajdonság áthelyezéséhez, átméretezéséhez és elforgatásához Rectangle. A példa azt is ellenőrzi, hogy az ManipulationDelta esemény a tehetetlenség során történt-e, és hogy a téglalap megérinti-e az ablak szélét. Ha ezek az esetek igazak, az alkalmazás leállítja a manipulációt, hogy megakadályozza, hogy a téglalap elhagyja az alkalmazás látható területét. Ez a példa egy nagyobb példa része az útmutatóban: Az első érintéses alkalmazás létrehozása.
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
Megjegyzések
Az ManipulationDeltaEventArgs osztály adatokat tartalmaz a manipuláció pozíciójának változásairól. A DeltaManipulation tulajdonság az utolsó ManipulationDelta esemény óta bekövetkezett módosításokat tartalmazza. A CumulativeManipulation tulajdonság az aktuális manipulációhoz végrehajtott összes módosítást tartalmazza. Ezen tulajdonságok egyikével alakíthatja át a manipulált objektumot.
A manipuláció befejezéséhez hívja meg a metódust Complete , vagy kényszerítse a manipulációt tehetetlenségre a StartInertia metódus meghívásával.
Tulajdonságok
| Name | Description |
|---|---|
| CumulativeManipulation |
Lekéri az aktuális manipuláció kumulált módosításait. |
| DeltaManipulation |
Lekéri az aktuális manipuláció legutóbbi módosításait. |
| Device |
Lekéri az eseményt kezdeményező bemeneti eszközt. (Öröklődés forrása InputEventArgs) |
| Handled |
Lekéri vagy beállít egy értéket, amely jelzi az útvonalon áthaladó esemény eseménykezelésének jelenlegi állapotát. (Öröklődés forrása RoutedEventArgs) |
| IsInertial |
Olyan értéket kap, amely jelzi, hogy az ManipulationDelta esemény a tehetetlenség során következik-e be. |
| ManipulationContainer |
Lekéri a manipuláció koordinátáit meghatározó tárolót. |
| ManipulationOrigin |
Lekéri azt a pontot, ahonnan a manipuláció származik. |
| Manipulators |
Olyan objektumgyűjteményt kap, amely a manipuláció érintéses névjegyeit jelöli. |
| OriginalSource |
Lekéri az eredeti jelentéskészítési forrást a tiszta találatos tesztelés alapján, mielőtt a szülőosztály bármilyen lehetséges Source módosítást végezne. (Öröklődés forrása RoutedEventArgs) |
| RoutedEvent |
Lekéri vagy beállítja a RoutedEvent példányhoz társított példányt RoutedEventArgs . (Öröklődés forrása RoutedEventArgs) |
| Source |
Lekéri vagy beállítja az eseményt okozó objektumra mutató hivatkozást. (Öröklődés forrása RoutedEventArgs) |
| Timestamp |
Lekéri az esemény bekövetkezésének időpontját. (Öröklődés forrása InputEventArgs) |
| Velocities |
Lekéri a manipuláció legutóbbi módosításainak sebességét. |
Metódusok
| Name | Description |
|---|---|
| Cancel() |
Megszakítja a manipulációt. |
| Complete() |
Végrehajtja a manipulációt tehetetlenség nélkül. |
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| InvokeEventHandler(Delegate, Object) |
Típusspecifikus módon hívja meg az eseménykezelőket, ami növelheti az eseményrendszer hatékonyságát. (Öröklődés forrása InputEventArgs) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| OnSetSource(Object) |
Ha egy származtatott osztályban felül van bírálva, egy értesítési visszahívási belépési pontot biztosít, amikor egy példány tulajdonságának Source értéke megváltozik. (Öröklődés forrása RoutedEventArgs) |
| ReportBoundaryFeedback(ManipulationDelta) |
Azt határozza meg, hogy a manipuláció túllépett bizonyos határokon. |
| StartInertia() |
A manipuláció tehetetlenséget indít el a későbbi érintkezési mozgások figyelmen kívül hagyásával és az ManipulationInertiaStarting esemény felemelésével. |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |