ManipulationDeltaEventArgs Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Udostępnia dane dla zdarzenia 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
- Dziedziczenie
Przykłady
W poniższym przykładzie przedstawiono procedurę obsługi zdarzeń dla ManipulationDelta zdarzenia. W przykładzie użyto DeltaManipulation właściwości do przenoszenia, zmieniania rozmiaru i obracania elementu Rectangle. Przykład sprawdza również, czy ManipulationDelta zdarzenie wystąpiło podczas inercji i czy prostokąt dotyka krawędzi okna. Jeśli te przypadki są prawdziwe, aplikacja zatrzymuje manipulację, aby uniemożliwić pozostawienie widocznego obszaru aplikacji. Ten przykład jest częścią większego przykładu w przewodniku: tworzenie pierwszej aplikacji dotykowej.
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
Uwagi
Klasa ManipulationDeltaEventArgs zawiera dane dotyczące zmian w pozycji manipulowania. Właściwość DeltaManipulation zawiera zmiany, które wystąpiły od czasu ostatniego ManipulationDelta zdarzenia. Właściwość CumulativeManipulation zawiera łączne zmiany, które wystąpiły podczas bieżącej manipulacji. Jedna z tych właściwości służy do przekształcania manipulowanego obiektu.
Manipulowanie można zakończyć przez wywołanie Complete metody lub wymusić manipulację w inercji, wywołując metodę StartInertia .
Właściwości
CumulativeManipulation |
Pobiera skumulowane zmiany bieżącej manipulacji. |
DeltaManipulation |
Pobiera najnowsze zmiany bieżącej manipulacji. |
Device |
Pobiera urządzenie wejściowe, które zainicjowało to zdarzenie. (Odziedziczone po InputEventArgs) |
Handled |
Pobiera lub ustawia wartość wskazującą obecny stan obsługi zdarzeń dla zdarzenia kierowanego podczas podróży trasy. (Odziedziczone po RoutedEventArgs) |
IsInertial |
Pobiera wartość wskazującą, czy ManipulationDelta zdarzenie występuje podczas inercji. |
ManipulationContainer |
Pobiera kontener, który definiuje współrzędne manipulowania. |
ManipulationOrigin |
Pobiera punkt, z którego pochodzi manipulacja. |
Manipulators |
Pobiera kolekcję obiektów reprezentujących kontakty dotykowe do manipulowania. |
OriginalSource |
Pobiera oryginalne źródło raportowania określone przez testowanie trafień, przed ewentualnym Source dostosowaniem przez klasę nadrzędną. (Odziedziczone po RoutedEventArgs) |
RoutedEvent |
Pobiera lub ustawia skojarzone z tym RoutedEventArgs wystąpieniemRoutedEvent. (Odziedziczone po RoutedEventArgs) |
Source |
Pobiera lub ustawia odwołanie do obiektu, który wzbudził zdarzenie. (Odziedziczone po RoutedEventArgs) |
Timestamp |
Pobiera czas wystąpienia tego zdarzenia. (Odziedziczone po InputEventArgs) |
Velocities |
Pobiera stawki najnowszych zmian manipulacji. |
Metody
Cancel() |
Anuluje manipulowanie. |
Complete() |
Kończy manipulowanie bez inercji. |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera bieżące wystąpienie. (Odziedziczone po Object) |
InvokeEventHandler(Delegate, Object) |
Wywołuje programy obsługi zdarzeń w sposób specyficzny dla typu, co może zwiększyć wydajność systemu zdarzeń. (Odziedziczone po InputEventArgs) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
OnSetSource(Object) |
Po zastąpieniu w klasie pochodnej zapewnia punkt wejścia wywołania zwrotnego powiadomień za każdym razem, gdy wartość Source właściwości wystąpienia ulegnie zmianie. (Odziedziczone po RoutedEventArgs) |
ReportBoundaryFeedback(ManipulationDelta) |
Określa, że manipulacja wykracza poza pewne granice. |
StartInertia() |
Rozpoczyna inercję manipulacji, ignorując kolejne ruchy kontaktowe i podnosząc ManipulationInertiaStarting zdarzenie. |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |