ManipulationDeltaEventArgs Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Innehåller data för ManipulationDelta händelsen.
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
- Arv
Exempel
I följande exempel visas en händelsehanterare för ManipulationDelta händelsen. I exemplet används egenskapen DeltaManipulation för att flytta, ändra storlek på och rotera en Rectangle. Exemplet kontrollerar också om händelsen ManipulationDelta inträffade under trögheten och om rektangeln vidrör kanten av ett fönster. Om dessa fall är sanna stoppar programmet manipuleringen för att förhindra att rektangeln lämnar programmets synliga område. Det här exemplet är en del av ett större exempel i Genomgång: Skapa ditt First Touch-program.
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
Kommentarer
Klassen ManipulationDeltaEventArgs innehåller data om ändringar i en manipuleringsposition. Egenskapen DeltaManipulation innehåller de ändringar som har inträffat sedan den senaste ManipulationDelta händelsen inträffade. Egenskapen CumulativeManipulation innehåller de totala ändringar som har inträffat för den aktuella manipulationen. Du använder en av dessa egenskaper för att transformera det manipulerade objektet.
Du kan avsluta en manipulation genom att anropa Complete metoden eller tvinga manipulationen till tröghet genom att anropa StartInertia metoden.
Egenskaper
| Name | Description |
|---|---|
| CumulativeManipulation |
Hämtar de ackumulerade ändringarna av den aktuella manipulationen. |
| DeltaManipulation |
Hämtar de senaste ändringarna av den aktuella manipulationen. |
| Device |
Hämtar den indataenhet som initierade den här händelsen. (Ärvd från InputEventArgs) |
| Handled |
Hämtar eller anger ett värde som anger det aktuella tillståndet för händelsehanteringen för en dirigerad händelse när den färdas längs vägen. (Ärvd från RoutedEventArgs) |
| IsInertial |
Hämtar ett värde som anger om händelsen ManipulationDelta inträffar under trögheten. |
| ManipulationContainer |
Hämtar containern som definierar koordinaterna för manipuleringen. |
| ManipulationOrigin |
Hämtar den punkt från vilken manipuleringen kom från. |
| Manipulators |
Hämtar en samling objekt som representerar beröringskontakterna för manipulationen. |
| OriginalSource |
Hämtar den ursprungliga rapporteringskällan enligt ren träfftestning, före eventuell Source justering av en överordnad klass. (Ärvd från RoutedEventArgs) |
| RoutedEvent |
Hämtar eller anger den associerade med den här RoutedEvent instansenRoutedEventArgs. (Ärvd från RoutedEventArgs) |
| Source |
Hämtar eller anger en referens till objektet som skapade händelsen. (Ärvd från RoutedEventArgs) |
| Timestamp |
Hämtar den tid då den här händelsen inträffade. (Ärvd från InputEventArgs) |
| Velocities |
Hämtar frekvensen för de senaste ändringarna i manipulationen. |
Metoder
| Name | Description |
|---|---|
| Cancel() |
Avbryter manipuleringen. |
| Complete() |
Slutför manipuleringen utan tröghet. |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| InvokeEventHandler(Delegate, Object) |
Anropar händelsehanterare på ett typspecifikt sätt, vilket kan öka händelsesystemets effektivitet. (Ärvd från InputEventArgs) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| OnSetSource(Object) |
När det åsidosättas i en härledd klass, tillhandahåller en startpunkt för återanrop när värdet för Source egenskapen för en instans ändras. (Ärvd från RoutedEventArgs) |
| ReportBoundaryFeedback(ManipulationDelta) |
Anger att manipuleringen har gått över vissa gränser. |
| StartInertia() |
Startar tröghet vid manipulering genom att ignorera efterföljande kontaktrörelser och höja ManipulationInertiaStarting händelsen. |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |