ManipulationDeltaEventArgs Класс

Определение

Предоставляет данные для события ManipulationDelta.Provides data for the ManipulationDelta event.

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
Наследование
ManipulationDeltaEventArgs

Примеры

В следующем примере показан обработчик событий для ManipulationDelta события.The following example shows an event handler for the ManipulationDelta event. В примере DeltaManipulation свойство используется для перемещения, изменения размера и Rectangleповорота.The example uses the DeltaManipulation property to move, resize, and rotate a Rectangle. В примере также проверяется, ManipulationDelta произошло ли событие во время инерции, а также находится ли прямоугольник в границах окна.The example also checks whether the ManipulationDelta event occurred during inertia and whether the rectangle is touching the edge of a window. Если эти случаи истинны, приложение останавливает манипуляцию, чтобы прямоугольник не отображал видимую область приложения.If those cases are true, the application stops the manipulation to prevent the rectangle from leaving the visible area of the application. Этот пример является частью более крупного примера в пошаговом руководстве: Создание первого приложения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

Комментарии

ManipulationDeltaEventArgs Класс содержит данные об изменениях в положении манипуляции.The ManipulationDeltaEventArgs class contains data about changes in the position of a manipulation. Свойство содержит изменения, произошедшие с момента возникновения последнего ManipulationDelta события. DeltaManipulationThe DeltaManipulation property contains the changes that occurred since the last ManipulationDelta event occurred. CumulativeManipulation Свойство содержит общие изменения, произошедшие для текущей манипуляции.The CumulativeManipulation property contains the total changes that occurred for the current manipulation. Для преобразования управляемого объекта используется одно из этих свойств.You use one of those properties to transform the manipulated object.

Вы можете завершить манипуляцию, вызвав Complete метод или принудительно заменив манипуляцию инерцией StartInertia , вызвав метод.You can end a manipulation by calling the Complete method or force the manipulation into inertia by calling the StartInertia method.

Свойства

CumulativeManipulation

Получает накопленные изменения текущей манипуляции.Gets the cumulated changes of the current manipulation.

DeltaManipulation

Получает последние изменения текущей манипуляции.Gets the most recent changes of the current manipulation.

Device

Получает устройство ввода, инициировавшее это событие.Gets the input device that initiated this event.

(Унаследовано от InputEventArgs)
Handled

Получает или задает значение, обозначающее текущее состояние обработки перенаправленного события при перемещении по маршруту.Gets or sets a value that indicates the present state of the event handling for a routed event as it travels the route.

(Унаследовано от RoutedEventArgs)
IsInertial

Получает значение, показывающее, происходит ли событие ManipulationDelta во время инерции.Gets a value that indicates whether the ManipulationDelta event occurs during inertia.

ManipulationContainer

Получает контейнер, определяющий координаты манипуляции.Gets the container that defines the coordinates for the manipulation.

ManipulationOrigin

Получает точку, с которой началась манипуляция.Gets the point from which the manipulation originated.

Manipulators

Получает коллекцию объектов, представляющих сенсорные контакты для обработки.Gets a collection of objects that represents the touch contacts for the manipulation.

OriginalSource

Возвращает исходный источник отчетов, определяемый чистой проверкой нажатия до какой-либо возможной корректировки Source родительским классом.Gets the original reporting source as determined by pure hit testing, before any possible Source adjustment by a parent class.

(Унаследовано от RoutedEventArgs)
RoutedEvent

Возвращает или задает объект RoutedEvent, связанный с этим экземпляром RoutedEventArgs.Gets or sets the RoutedEvent associated with this RoutedEventArgs instance.

(Унаследовано от RoutedEventArgs)
Source

Получает или задает ссылку на объект, создавший событие.Gets or sets a reference to the object that raised the event.

(Унаследовано от RoutedEventArgs)
Timestamp

Получает время, когда произошло данное событие.Gets the time when this event occurred.

(Унаследовано от InputEventArgs)
Velocities

Получает скорости последних изменений в манипуляции.Gets the rates of the most recent changes to the manipulation.

Методы

Cancel()

Отменяет операцию.Cancels the manipulation.

Complete()

Завершает манипуляцию без инерции.Completes the manipulation without inertia.

Equals(Object)

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

(Унаследовано от Object)
GetHashCode()

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

(Унаследовано от Object)
GetType()

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

(Унаследовано от Object)
InvokeEventHandler(Delegate, Object)

Вызывает обработчики событий способом, зависящим от типа, что может повысить эффективность системы событий.Invokes event handlers in a type-specific way, which can increase event system efficiency.

(Унаследовано от InputEventArgs)
MemberwiseClone()

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

(Унаследовано от Object)
OnSetSource(Object)

При переопределении в производном классе предоставляет точку входа обратного вызова для уведомления в случае изменения значения свойства Source в экземпляре.When overridden in a derived class, provides a notification callback entry point whenever the value of the Source property of an instance changes.

(Унаследовано от RoutedEventArgs)
ReportBoundaryFeedback(ManipulationDelta)

Указывает, что манипуляция вышла за определенные границы.Specifies that the manipulation has gone beyond certain boundaries.

StartInertia()

Запускает инерцию для операции, игнорируя последующие контактные движения и порождая событие ManipulationInertiaStarting.Starts inertia on the manipulation by ignoring subsequent contact movements and raising the ManipulationInertiaStarting event.

ToString()

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

(Унаследовано от Object)

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