ManipulationDelta ManipulationDelta ManipulationDelta ManipulationDelta Class

Определение

Содержит данные о преобразовании, накапливаемые во время событий манипуляции.Contains transformation data that is accumulated when manipulation events occur.

public ref class ManipulationDelta
public class ManipulationDelta
type ManipulationDelta = class
Public Class ManipulationDelta
Наследование
ManipulationDeltaManipulationDeltaManipulationDeltaManipulationDelta

Примеры

В следующем примере показан обработчик событий для ManipulationDelta события.The following example shows an event handler for the ManipulationDelta event. В примере применяются Translationсвойства, Scaleи Rotation для Rectangleперемещения, изменения размера и поворота.The example applies the Translation, Scale, and Rotation properties to move, resize, and rotate a Rectangle. Этот пример является частью более крупного примера в пошаговом руководстве: Создание первого приложенияTouch.This example is part of a larger example in Walkthrough: Creating Your First Touch Application.

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

Комментарии

ManipulationDelta Класс содержит сведения об изменениях в положении манипуляции.The ManipulationDelta class contains information about the changes in the position of a manipulation. Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)интерпретирует изменения как Translation, Expansionили Rotation.interprets the changes as a Translation, Expansion, or Rotation. Когда событие происходит UIElementв, ManipulationDelta используйте свойства объекта для преобразования объекта, который должен обрабатываться. ManipulationDeltaWhen the ManipulationDelta event occurs on a UIElement, use the properties on a ManipulationDelta object to transform the object that should be manipulated. Класс предоставляет два свойства типа ManipulationDelta: DeltaManipulation и CumulativeManipulation. ManipulationDeltaEventArgsThe ManipulationDeltaEventArgs class provides two properties of type ManipulationDelta: DeltaManipulation and CumulativeManipulation.

Дополнительные сведения об операциях см. в разделе Общие сведения о входных данных.For more information about manipulations, see the Input Overview. Пример приложения, реагирующего на манипуляции, см. в разделе пошаговое руководство. Создание первого приложенияTouch.For an example of an application that responds to manipulations, see Walkthrough: Creating Your First Touch Application.

Конструкторы

ManipulationDelta(Vector, Double, Vector, Vector) ManipulationDelta(Vector, Double, Vector, Vector) ManipulationDelta(Vector, Double, Vector, Vector) ManipulationDelta(Vector, Double, Vector, Vector)

Инициализирует новый экземпляр класса ManipulationDelta.Initializes a new instance of the ManipulationDelta class.

Свойства

Expansion Expansion Expansion Expansion

Получает или задает величину изменения размера манипуляции в аппаратно-независимые единицы (1/96 дюйма на единицу)device-independent units (1/96th inch per unit).Gets or sets the amount the manipulation has resized in аппаратно-независимые единицы (1/96 дюйма на единицу)device-independent units (1/96th inch per unit).

Rotation Rotation Rotation Rotation

Получает или задает угол поворота манипуляции в градусах.Gets or sets the rotation of the manipulation in degrees.

Scale Scale Scale Scale

Получает или задает величину изменения размера манипуляции в виде множителя.Gets or sets the amount the manipulation has resized as a multiplier.

Translation Translation Translation Translation

Получает или задает линейное перемещение манипуляции.Gets or sets the linear motion of the manipulation.

Методы

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)

Применяется к