ManipulationDeltaEventArgs ManipulationDeltaEventArgs ManipulationDeltaEventArgs ManipulationDeltaEventArgs Class

定義

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
継承

次の例は、イベント ハンドラーを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. この例の例ではチュートリアル: 初めてのタッチ アプリケーションの作成です。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. DeltaManipulationプロパティには、最後に発生した変更が含まれています。ManipulationDeltaイベントが発生しました。The 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 CumulativeManipulation CumulativeManipulation CumulativeManipulation

現在の操作の累積された変更を取得します。Gets the cumulated changes of the current manipulation.

DeltaManipulation DeltaManipulation DeltaManipulation DeltaManipulation

現在の操作の最新の変更を取得します。Gets the most recent changes of the current manipulation.

Device Device Device Device

このイベントを開始した入力デバイスを取得します。Gets the input device that initiated this event.

(Inherited from InputEventArgs)
Handled Handled Handled Handled

ルーティング イベントがルートをたどる際のイベント処理の現在の状態を示す値を取得または設定します。Gets or sets a value that indicates the present state of the event handling for a routed event as it travels the route.

(Inherited from RoutedEventArgs)
IsInertial IsInertial IsInertial IsInertial

慣性による処理中に ManipulationDelta イベントが発生するかどうかを示す値を取得します。Gets a value that indicates whether the ManipulationDelta event occurs during inertia.

ManipulationContainer ManipulationContainer ManipulationContainer ManipulationContainer

操作の座標を定義するコンテナーを取得します。Gets the container that defines the coordinates for the manipulation.

ManipulationOrigin ManipulationOrigin ManipulationOrigin ManipulationOrigin

操作の起点となるポイントを取得します。Gets the point from which the manipulation originated.

Manipulators Manipulators Manipulators Manipulators

操作用のタッチ接触点を表すオブジェクトのコレクションを取得します。Gets a collection of objects that represents the touch contacts for the manipulation.

OriginalSource OriginalSource OriginalSource OriginalSource

親クラスによって Source が調整される前の、純粋なヒット テストで判断される元の報告ソースを取得します。Gets the original reporting source as determined by pure hit testing, before any possible Source adjustment by a parent class.

(Inherited from RoutedEventArgs)
RoutedEvent RoutedEvent RoutedEvent RoutedEvent

この RoutedEventArgs インスタンスに関連付けられている RoutedEvent を取得または設定します。Gets or sets the RoutedEvent associated with this RoutedEventArgs instance.

(Inherited from RoutedEventArgs)
Source Source Source Source

イベントを発生させたオブジェクトへの参照を取得または設定します。Gets or sets a reference to the object that raised the event.

(Inherited from RoutedEventArgs)
Timestamp Timestamp Timestamp Timestamp

このイベントが発生した時刻を取得します。Gets the time when this event occurred.

(Inherited from InputEventArgs)
Velocities Velocities Velocities Velocities

操作に対する最新の変更の速度を取得します。Gets the rates of the most recent changes to the manipulation.

メソッド

Cancel() Cancel() Cancel() Cancel()

操作を取り消します。Cancels the manipulation.

Complete() Complete() Complete() Complete()

慣性なしで操作を完了します。Completes the manipulation without inertia.

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)
InvokeEventHandler(Delegate, Object) InvokeEventHandler(Delegate, Object) InvokeEventHandler(Delegate, Object) InvokeEventHandler(Delegate, Object)

型固有の方法でイベント ハンドラーを呼び出します。これにより、イベント システムの効率を高めることができます。Invokes event handlers in a type-specific way, which can increase event system efficiency.

(Inherited from InputEventArgs)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
OnSetSource(Object) OnSetSource(Object) OnSetSource(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.

(Inherited from RoutedEventArgs)
ReportBoundaryFeedback(ManipulationDelta) ReportBoundaryFeedback(ManipulationDelta) ReportBoundaryFeedback(ManipulationDelta) ReportBoundaryFeedback(ManipulationDelta)

操作が特定の境界を超えていることを指定します。Specifies that the manipulation has gone beyond certain boundaries.

StartInertia() StartInertia() StartInertia() StartInertia()

後続の接触動作を無視して、ManipulationInertiaStarting イベントを発生させることにより、操作での慣性による処理を開始します。Starts inertia on the manipulation by ignoring subsequent contact movements and raising the ManipulationInertiaStarting event.

ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

適用対象