Bagikan melalui


ManipulationDeltaEventArgs Kelas

Definisi

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
ManipulationDeltaEventArgs

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)

Berlaku untuk