Aracılığıyla paylaş


ManipulationDelta Sınıf

Tanım

İşleme olayları gerçekleştiğinde birikmiş dönüştürme verilerini içerir.

public ref class ManipulationDelta
public class ManipulationDelta
type ManipulationDelta = class
Public Class ManipulationDelta
Devralma
ManipulationDelta

Örnekler

Aşağıdaki örnekte olay için bir olay işleyicisi gösterilmektedir ManipulationDelta . Örnek, bir öğesini taşımak, yeniden boyutlandırmak ve döndürmek Rectangleiçin , Scaleve özelliklerini uygularTranslation.Rotation 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ı, ManipulationDelta bir işlemenin konumundaki değişiklikler hakkında bilgi içerir. Windows Presentation Foundation (WPF), değişiklikleri , TranslationExpansionveya Rotationolarak yorumlar. ManipulationDelta Olay bir UIElementüzerinde gerçekleştiğinde, bir nesnedeki ManipulationDelta özellikleri kullanarak, yönlendirilmesi gereken nesneyi dönüştürün. ManipulationDeltaEventArgs sınıfı iki tür ManipulationDeltaözelliği sağlar: DeltaManipulation ve CumulativeManipulation.

İşlemeler hakkında daha fazla bilgi için bkz. Girişe Genel Bakış. İşlemelere yanıt veren bir uygulama örneği için bkz. İzlenecek Yol: İlk Dokunmatik Uygulamanızı Oluşturma.

Oluşturucular

ManipulationDelta(Vector, Double, Vector, Vector)

ManipulationDelta sınıfının yeni bir örneğini başlatır.

Özellikler

Expansion

İşlemenin cihazdan bağımsız birimlerde (birim başına 1/96 inç) yeniden boyutlandırdığı miktarı alır veya ayarlar.

Rotation

İşlemenin döndürmesini derece olarak alır veya ayarlar.

Scale

Düzenlemenin yeniden boyutlandırdığı miktarı çarpan olarak alır veya ayarlar.

Translation

İşlemenin doğrusal hareketini alır veya ayarlar.

Yöntemler

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)
MemberwiseClone()

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

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

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

(Devralındığı yer: Object)

Şunlara uygulanır