ManipulationDeltaEventArgs クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ManipulationDelta イベントのデータを提供します。
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 示しています。 この例では、 プロパティを DeltaManipulation 使用して を移動、サイズ変更、回転します Rectangle。 この例では、慣性中にイベントが ManipulationDelta 発生したかどうか、および四角形がウィンドウの端に触れているかどうかも確認します。 これらのケースが true の場合、アプリケーションは操作を停止して、四角形がアプリケーションの可視領域から離れないようにします。 この例は、「 チュートリアル: 初めてのタッチ アプリケーションの作成」の大きな例の一部です。
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 、操作の位置の変更に関するデータが含まれています。 プロパティには DeltaManipulation 、最後 ManipulationDelta のイベントが発生した後に発生した変更が含まれます。 プロパティには CumulativeManipulation 、現在の操作で発生した変更の合計が含まれます。 これらのプロパティの 1 つを使用して、操作されたオブジェクトを変換します。
メソッドを呼び出して操作を終了するか、 メソッドを Complete 呼び出して操作を StartInertia 強制することができます。
プロパティ
CumulativeManipulation |
現在の操作の累積された変更を取得します。 |
DeltaManipulation |
現在の操作の最新の変更を取得します。 |
Device |
このイベントを開始した入力デバイスを取得します。 (継承元 InputEventArgs) |
Handled |
ルーティング イベントがルートをたどる際のイベント処理の現在の状態を示す値を取得または設定します。 (継承元 RoutedEventArgs) |
IsInertial |
慣性による処理中に ManipulationDelta イベントが発生するかどうかを示す値を取得します。 |
ManipulationContainer |
操作の座標を定義するコンテナーを取得します。 |
ManipulationOrigin |
操作の起点となるポイントを取得します。 |
Manipulators |
操作用のタッチ接触点を表すオブジェクトのコレクションを取得します。 |
OriginalSource |
親クラスによって Source が調整される前の、純粋なヒット テストで判断される元の報告ソースを取得します。 (継承元 RoutedEventArgs) |
RoutedEvent |
この RoutedEventArgs インスタンスに関連付けられている RoutedEvent を取得または設定します。 (継承元 RoutedEventArgs) |
Source |
イベントを発生させたオブジェクトへの参照を取得または設定します。 (継承元 RoutedEventArgs) |
Timestamp |
このイベントが発生した時刻を取得します。 (継承元 InputEventArgs) |
Velocities |
操作に対する最新の変更の速度を取得します。 |
メソッド
Cancel() |
操作を取り消します。 |
Complete() |
慣性なしで操作を完了します。 |
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
InvokeEventHandler(Delegate, Object) |
型固有の方法でイベント ハンドラーを呼び出します。これにより、イベント システムの効率を高めることができます。 (継承元 InputEventArgs) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
OnSetSource(Object) |
派生クラスでオーバーライドした場合、インスタンスの Source プロパティの値が変更されるたびに、通知コールバックのエントリ ポイントを提供します。 (継承元 RoutedEventArgs) |
ReportBoundaryFeedback(ManipulationDelta) |
操作が特定の境界を超えていることを指定します。 |
StartInertia() |
後続の接触動作を無視して、ManipulationInertiaStarting イベントを発生させることにより、操作での慣性による処理を開始します。 |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
適用対象
.NET