ManipulationDeltaEventArgs Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menyediakan data untuk peristiwa tersebut 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
- Warisan
Contoh
Contoh berikut menunjukkan penanganan aktivitas untuk peristiwa tersebut ManipulationDelta . Contohnya menggunakan DeltaManipulation properti untuk memindahkan, mengubah ukuran, dan memutar Rectangle. Contohnya juga memeriksa apakah ManipulationDelta peristiwa terjadi selama inertia dan apakah persegi panjang menyentuh tepi jendela. Jika kasus tersebut benar, aplikasi menghentikan manipulasi untuk mencegah persegi panjang meninggalkan area aplikasi yang terlihat. Contoh ini adalah bagian dari contoh yang lebih besar di Walkthrough: Membuat Aplikasi Sentuhan Pertama Anda.
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
Keterangan
Kelas ManipulationDeltaEventArgs berisi data tentang perubahan posisi manipulasi. DeltaManipulation Properti berisi perubahan yang terjadi sejak peristiwa terakhir ManipulationDelta terjadi. CumulativeManipulation Properti berisi total perubahan yang terjadi untuk manipulasi saat ini. Anda menggunakan salah satu properti tersebut untuk mengubah objek yang dimanipulasi.
Anda dapat mengakhiri manipulasi dengan memanggil Complete metode atau memaksa manipulasi menjadi inertia dengan memanggil StartInertia metode .
Properti
CumulativeManipulation |
Mendapatkan perubahan kumulasi dari manipulasi saat ini. |
DeltaManipulation |
Mendapatkan perubahan terbaru dari manipulasi saat ini. |
Device |
Mendapatkan perangkat input yang memulai kejadian ini. (Diperoleh dari InputEventArgs) |
Handled |
Mendapatkan atau menetapkan nilai yang menunjukkan status penanganan peristiwa saat ini untuk peristiwa yang dirutekan saat melakukan perjalanan rute. (Diperoleh dari RoutedEventArgs) |
IsInertial |
Mendapatkan nilai yang menunjukkan apakah ManipulationDelta peristiwa terjadi selama inertia. |
ManipulationContainer |
Mendapatkan kontainer yang menentukan koordinat untuk manipulasi. |
ManipulationOrigin |
Mendapatkan titik dari mana manipulasi berasal. |
Manipulators |
Mendapatkan kumpulan objek yang mewakili kontak sentuh untuk manipulasi. |
OriginalSource |
Mendapatkan sumber pelaporan asli sebagaimana ditentukan oleh pengujian hit murni, sebelum kemungkinan Source penyesuaian oleh kelas induk. (Diperoleh dari RoutedEventArgs) |
RoutedEvent |
Mendapatkan atau mengatur yang RoutedEvent terkait dengan instans ini RoutedEventArgs . (Diperoleh dari RoutedEventArgs) |
Source |
Mendapatkan atau mengatur referensi ke objek yang memunculkan peristiwa. (Diperoleh dari RoutedEventArgs) |
Timestamp |
Mendapatkan waktu ketika peristiwa ini terjadi. (Diperoleh dari InputEventArgs) |
Velocities |
Mendapatkan tingkat perubahan terbaru pada manipulasi. |
Metode
Cancel() |
Membatalkan manipulasi. |
Complete() |
Menyelesaikan manipulasi tanpa inertia. |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetType() |
Mendapatkan instans Type saat ini. (Diperoleh dari Object) |
InvokeEventHandler(Delegate, Object) |
Memanggil penanganan aktivitas dengan cara khusus jenis, yang dapat meningkatkan efisiensi sistem peristiwa. (Diperoleh dari InputEventArgs) |
MemberwiseClone() |
Membuat salinan dangkal dari yang saat ini Object. (Diperoleh dari Object) |
OnSetSource(Object) |
Saat ditimpa di kelas turunan, berikan titik masuk panggilan balik pemberitahuan setiap kali nilai Source properti instans berubah. (Diperoleh dari RoutedEventArgs) |
ReportBoundaryFeedback(ManipulationDelta) |
Menentukan bahwa manipulasi telah melampaui batas-batas tertentu. |
StartInertia() |
Memulai inertia pada manipulasi dengan mengabaikan gerakan kontak berikutnya dan menaikkan ManipulationInertiaStarting acara. |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |