Aracılığıyla paylaş


ManipulationDeltaEventArgs Sınıf

Tanım

ManipulationDelta olayı için veriler sağlar.

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
Devralma
ManipulationDeltaEventArgs

Örnekler

Aşağıdaki örnekte olay için bir olay işleyicisi gösterilmektedir ManipulationDelta . Örnek, bir Rectangleöğesini DeltaManipulation taşımak, yeniden boyutlandırmak ve döndürmek için özelliğini kullanır. Örnek ayrıca olayın eylemsizlik sırasında oluşup oluşmadığını ManipulationDelta ve dikdörtgenin bir pencerenin kenarına dokunup dokunmadığını denetler. Bu durumlar doğruysa, uygulama dikdörtgenin uygulamanın görünür alanından ayrılmasını önlemek için işlemeyi durdurur. Bu örnek, İzlenecek Yol: İlk Dokunmatik Uygulamanızı Oluşturma makalesindeki daha büyük bir örneğin parçasıdır.

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

Açıklamalar

sınıfı, ManipulationDeltaEventArgs bir işleme konumundaki değişikliklerle ilgili verileri içerir. özelliği, DeltaManipulation son ManipulationDelta olay gerçekleştikten sonra gerçekleşen değişiklikleri içerir. özelliği, CumulativeManipulation geçerli düzenleme için gerçekleşen toplam değişiklikleri içerir. Bu özelliklerden birini, değiştirilmiş nesneyi dönüştürmek için kullanırsınız.

Yöntemini çağırarak bir işlemeyi Complete sonlandırabilir veya yöntemini çağırarak StartInertia işlemeyi eylemsizliğe zorlayabilirsiniz.

Özellikler

CumulativeManipulation

Geçerli işlemenin birikilmiş değişikliklerini alır.

DeltaManipulation

Geçerli işlemenin en son değişikliklerini alır.

Device

Bu olayı başlatan giriş cihazını alır.

(Devralındığı yer: InputEventArgs)
Handled

Yolu ilerlerken yönlendirilen bir olay için olay işlemenin mevcut durumunu gösteren bir değer alır veya ayarlar.

(Devralındığı yer: RoutedEventArgs)
IsInertial

Olayın eylemsizlik sırasında oluşup oluşmadığını ManipulationDelta gösteren bir değer alır.

ManipulationContainer

İşleme için koordinatları tanımlayan kapsayıcıyı alır.

ManipulationOrigin

Düzenlemenin kaynaklandığı noktayı alır.

Manipulators

İşleme için dokunmatik kişileri temsil eden bir nesne koleksiyonu alır.

OriginalSource

Bir üst sınıf tarafından herhangi bir olası Source ayarlamadan önce, saf isabet testi tarafından belirlenen özgün raporlama kaynağını alır.

(Devralındığı yer: RoutedEventArgs)
RoutedEvent

Bu RoutedEventArgs örnekle ilişkili öğesini RoutedEvent alır veya ayarlar.

(Devralındığı yer: RoutedEventArgs)
Source

Olayı oluşturan nesneye bir başvuru alır veya ayarlar.

(Devralındığı yer: RoutedEventArgs)
Timestamp

Bu olayın gerçekleştiği zamanı alır.

(Devralındığı yer: InputEventArgs)
Velocities

Düzenlemede yapılan en son değişikliklerin oranlarını alır.

Yöntemler

Cancel()

Düzenlemeyi iptal eder.

Complete()

Eylemsizlik olmadan işlemeyi tamamlar.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
InvokeEventHandler(Delegate, Object)

Olay işleyicilerini türe özgü bir şekilde çağırır ve bu da olay sistemi verimliliğini artırabilir.

(Devralındığı yer: InputEventArgs)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
OnSetSource(Object)

Türetilmiş bir sınıfta geçersiz kılındığında, bir örneğin özelliğinin Source değeri her değiştiğinde bir bildirim geri çağırma giriş noktası sağlar.

(Devralındığı yer: RoutedEventArgs)
ReportBoundaryFeedback(ManipulationDelta)

Düzenlemenin belirli sınırların ötesine geçtiğini belirtir.

StartInertia()

Sonraki temas hareketlerini yoksayarak ve olayı yükselterek işlemede ManipulationInertiaStarting eylemsizlik başlatır.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır