TouchDevice TouchDevice TouchDevice TouchDevice Class

定義

タッチスクリーン上で指によって生成されるシングル タッチ入力を表します。Represents a single touch input produced by a finger on a touchscreen.

public ref class TouchDevice abstract : System::Windows::Input::InputDevice, System::Windows::Input::IManipulator
public abstract class TouchDevice : System.Windows.Input.InputDevice, System.Windows.Input.IManipulator
type TouchDevice = class
    inherit InputDevice
    interface IManipulator
Public MustInherit Class TouchDevice
Inherits InputDevice
Implements IManipulator
継承
実装

次の例では、上のシンプルなパターンを作成することができます、Canvasタッチ スクリーンで 2 本の指をドラッグします。The following example enables you to create simple patterns on a Canvas by dragging two fingers on a touchscreen. によって表される各タッチ、TouchDeviceで、TouchEventArgsします。Each touch is represented by a TouchDevice in the TouchEventArgs. パターンは、タッチによって提供されるタッチ点の間に線を描画して作成されます。The pattern is created by drawing a line between the touch points that are provided by the touches. この例では、Windows タッチと互換性のある画面が必要です。This example requires a Windows Touch-compatible screen.

次のマークアップで構成されるユーザー インターフェイスを作成し、Canvas中央、グリッドに表示され、タッチ イベントのイベント ハンドラーをアタッチします。The following markup creates the user interface, which consists of a Canvas that is centered in a grid, and attaches the event handlers for the touch events.

<Window x:Class="WpfTouchEventsSample.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="525" Width="525">
    <Grid>
        <Canvas x:Name="canvas1"
                Width="500" Height="500"
                Background="Black"
                TouchDown="canvas_TouchDown"
                TouchMove="canvas_TouchMove"
                TouchUp="canvas_TouchUp" />
    </Grid>
</Window>

次のコードでは、タッチ イベントを処理します。The following code handles the touch events. タッチが押されたときに、 CanvasTouchDeviceにキャプチャされて、Canvasします。When a touch is pressed on the Canvas, the TouchDevice is captured to the Canvas. タッチを無効になったときに、TouchDevice解放されます。When the touch is lifted, the TouchDevice is released. タッチが移動したときに、 CanvasIdがチェックされます。When a touch moves on the Canvas, the Id is checked. 最初のタッチの場合は、その場所が記録されます。If the move came from the first touch, its location is recorded. 2 つ目のタッチの場合は、行は最初のタッチの位置から 2 番目のタッチの位置に描画されます。If the move came from the second touch, a line is drawn from the position of the first touch to the position of the second touch.

using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Shapes;
using System.Windows.Controls;

namespace WpfTouchEventsSample
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        // Variables to track the first two touch points 
        // and the ID of the first touch point.
        private Point pt1, pt2 = new Point();
        private int firstTouchId = -1;

        public MainWindow()
        {
            InitializeComponent();
        }

        private void canvas_TouchDown(object sender, TouchEventArgs e)
        {
            Canvas _canvas = (Canvas)sender as Canvas;
            if (_canvas != null)
            {
                _canvas.Children.Clear();
                e.TouchDevice.Capture(_canvas);

                // Record the ID of the first touch point if it hasn't been recorded.
                if (firstTouchId == -1)
                    firstTouchId = e.TouchDevice.Id;
            }
        }

        private void canvas_TouchMove(object sender, TouchEventArgs e)
        {
            Canvas _canvas = (Canvas)sender as Canvas;
            if (_canvas != null)
            {
                TouchPoint tp = e.GetTouchPoint(_canvas);
                // This is the first touch point; just record its position.
                if (e.TouchDevice.Id == firstTouchId)
                {
                    pt1.X = tp.Position.X;
                    pt1.Y = tp.Position.Y;
                }
                // This is not the first touch point; draw a line from the first point to this one.
                else if (e.TouchDevice.Id != firstTouchId)
                {
                    pt2.X = tp.Position.X;
                    pt2.Y = tp.Position.Y;

                    Line _line = new Line();
                    _line.Stroke = new RadialGradientBrush(Colors.White, Colors.Black);
                    _line.X1 = pt1.X;
                    _line.X2 = pt2.X;
                    _line.Y1 = pt1.Y;
                    _line.Y2 = pt2.Y;

                    _line.StrokeThickness = 2;
                    _canvas.Children.Add(_line);
                }
            }
        }

        private void canvas_TouchUp(object sender, TouchEventArgs e)
        {
            Canvas _canvas = (Canvas)sender as Canvas;
            if (_canvas != null && e.TouchDevice.Captured == _canvas)
            {
                _canvas.ReleaseTouchCapture(e.TouchDevice);
            }
        }
    }
}
Class MainWindow
    ' Variables to track the first two touch points 
    ' and the ID of the first touch point.
    Private pt1, pt2 As Point
    Private firstTouchId As Integer = -1
    ' Touch Down
    Private Sub canvas_TouchDown(ByVal sender As System.Object, ByVal e As System.Windows.Input.TouchEventArgs)
        Dim _canvas As Canvas = CType(sender, Canvas)
        If (_canvas IsNot Nothing) Then
            _canvas.Children.Clear()
            e.TouchDevice.Capture(_canvas)

            ' Record the ID of the first touch point if it hasn't been recorded.
            If firstTouchId = -1 Then
                firstTouchId = e.TouchDevice.Id
            End If
        End If
    End Sub
    ' Touch Move
    Private Sub canvas_TouchMove(ByVal sender As System.Object, ByVal e As System.Windows.Input.TouchEventArgs)
        Dim _canvas As Canvas = CType(sender, Canvas)
        If (_canvas IsNot Nothing) Then
            Dim tp = e.GetTouchPoint(_canvas)
            ' This is the first touch point; just record its position.
            If e.TouchDevice.Id = firstTouchId Then
                pt1.X = tp.Position.X
                pt1.Y = tp.Position.Y

                ' This is not the first touch point; draw a line from the first point to this one.
            ElseIf e.TouchDevice.Id <> firstTouchId Then
                pt2.X = tp.Position.X
                pt2.Y = tp.Position.Y

                Dim _line As New Line()
                _line.Stroke = New RadialGradientBrush(Colors.White, Colors.Black)
                _line.X1 = pt1.X
                _line.X2 = pt2.X
                _line.Y1 = pt1.Y
                _line.Y2 = pt2.Y

                _line.StrokeThickness = 2
                _canvas.Children.Add(_line)
            End If
        End If
    End Sub
    ' Touch Up
    Private Sub canvas_TouchUp(ByVal sender As System.Object, ByVal e As System.Windows.Input.TouchEventArgs)
        Dim _canvas As Canvas = CType(sender, Canvas)
        If (_canvas IsNot Nothing AndAlso e.TouchDevice.Captured Is _canvas) Then
            _canvas.ReleaseTouchCapture(e.TouchDevice)

        End If
    End Sub
End Class

注釈

通常、アクセス、TouchDeviceを使用して、TouchEventArgs.TouchDeviceプロパティ。You typically access a TouchDevice by using the TouchEventArgs.TouchDevice property. ATouchDevice画面上の 1 つのタッチを表します。A TouchDevice represents a single touch on a screen. 複数のタッチが存在する場合を使用して、Idプロパティを区別します。If multiple touches are present, use the Id property to distinguish between them.

注意

このクラスには、すべてのメンバーに適用される、クラス レベルで継承確認要求が含まれています。This class contains an inheritance demand at the class level that applies to all members. ASecurityException派生クラスに完全信頼アクセス許可があるない場合にスローされます。A SecurityException is thrown when the derived class does not have full-trust permission. セキュリティの要求の詳細については、次を参照してください。リンク確認要求継承確認要求します。For more information about security demands, see Link Demands and Inheritance Demands.

コンストラクター

TouchDevice(Int32) TouchDevice(Int32) TouchDevice(Int32) TouchDevice(Int32)

TouchDevice クラスを初期化するために、派生クラスのコンストラクターから呼び出されます。Called from constructors in derived classes to initialize the TouchDevice class.

プロパティ

ActiveSource ActiveSource ActiveSource ActiveSource

取得、PresentationSourceこのデバイスの入力を報告します。Gets the PresentationSource that is reporting input for this device.

Captured Captured Captured Captured

キャプチャする要素を取得、TouchDeviceします。Gets the element that captured the TouchDevice.

CaptureMode CaptureMode CaptureMode CaptureMode

キャプチャ ポリシーを取得、TouchDeviceします。Gets the capture policy of the TouchDevice.

DirectlyOver DirectlyOver DirectlyOver DirectlyOver

経由で直接タッチ接触点がある要素を取得します。Gets the element that the touch contact point is directly over.

Dispatcher Dispatcher Dispatcher Dispatcher

取得、DispatcherこのDispatcherObjectに関連付けられています。Gets the Dispatcher this DispatcherObject is associated with.

(Inherited from DispatcherObject)
Id Id Id Id

一意の識別子を取得、TouchDeviceオペレーティング システムによって提供されるようにします。Gets the unique identifier of the TouchDevice, as provided by the operating system.

IsActive IsActive IsActive IsActive

デバイスがアクティブかどうかを示す値を取得します。Gets a value that indicates whether the device is active.

Target Target Target Target

入力を受け取る要素を取得、TouchDeviceします。Gets the element that receives input from the TouchDevice.

メソッド

Activate() Activate() Activate() Activate()

追加、TouchDevice入力メッセージング システムにします。Adds the TouchDevice to the input messaging system.

Capture(IInputElement) Capture(IInputElement) Capture(IInputElement) Capture(IInputElement)

使用して、指定した要素へのタッチをキャプチャ、Elementのキャプチャ モード。Captures a touch to the specified element by using the Element capture mode.

Capture(IInputElement, CaptureMode) Capture(IInputElement, CaptureMode) Capture(IInputElement, CaptureMode) Capture(IInputElement, CaptureMode)

指定したを使用して指定された要素にタッチをキャプチャCaptureModeします。Captures a touch to the specified element by using the specified CaptureMode.

CheckAccess() CheckAccess() CheckAccess() CheckAccess()

呼び出し元のスレッドが、これに対するアクセス権を持つかどうかを判断しますDispatcherObjectします。Determines whether the calling thread has access to this DispatcherObject.

(Inherited from DispatcherObject)
Deactivate() Deactivate() Deactivate() Deactivate()

削除、TouchDevice入力メッセージング システムからです。Removes the TouchDevice from the input messaging system.

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)
GetIntermediateTouchPoints(IInputElement) GetIntermediateTouchPoints(IInputElement) GetIntermediateTouchPoints(IInputElement) GetIntermediateTouchPoints(IInputElement)

派生クラスでオーバーライドされると、最も最近と前の間に収集されるすべてのタッチ ポイントのタッチ イベントを返します。When overridden in a derived class, returns all touch points that are collected between the most recent and previous touch events.

GetTouchPoint(IInputElement) GetTouchPoint(IInputElement) GetTouchPoint(IInputElement) GetTouchPoint(IInputElement)

指定された要素に対する相対的なタッチ デバイスの現在位置を返します。Returns the current position of the touch device relative to the specified element.

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)
OnCapture(IInputElement, CaptureMode) OnCapture(IInputElement, CaptureMode) OnCapture(IInputElement, CaptureMode) OnCapture(IInputElement, CaptureMode)

タッチが要素にキャプチャされるときに呼び出されます。Called when a touch is captured to an element.

OnManipulationEnded(Boolean) OnManipulationEnded(Boolean) OnManipulationEnded(Boolean) OnManipulationEnded(Boolean)

操作が終了したときに呼び出されます。Called when a manipulation has ended.

OnManipulationStarted() OnManipulationStarted() OnManipulationStarted() OnManipulationStarted()

操作が開始されると呼び出されます。Called when a manipulation is started.

ReportDown() ReportDown() ReportDown() ReportDown()

タッチが要素に押されたことを報告します。Reports that a touch is pressed on an element.

ReportMove() ReportMove() ReportMove() ReportMove()

タッチが要素の間で移動するレポートします。Reports that a touch is moving across an element.

ReportUp() ReportUp() ReportUp() ReportUp()

タッチが要素から放されたことを報告します。Reports that a touch was lifted from an element.

SetActiveSource(PresentationSource) SetActiveSource(PresentationSource) SetActiveSource(PresentationSource) SetActiveSource(PresentationSource)

セット、PresentationSourceこのデバイスの入力を報告します。Sets the PresentationSource that is reporting input for this device.

Synchronize() Synchronize() Synchronize() Synchronize()

力、TouchDevice基になると、ユーザー インターフェイスのタッチ ポイントを同期します。Forces the TouchDevice to synchronize the user interface with underlying touch points.

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

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

(Inherited from Object)
VerifyAccess() VerifyAccess() VerifyAccess() VerifyAccess()

呼び出し元のスレッドがこのへのアクセスを強制DispatcherObjectします。Enforces that the calling thread has access to this DispatcherObject.

(Inherited from DispatcherObject)

イベント

Activated Activated Activated Activated

TouchDevice が入力メッセージング システムに追加されるときに発生します。Occurs when the TouchDevice is added to the input messaging system.

Deactivated Deactivated Deactivated Deactivated

発生したときに、TouchDevice入力メッセージング システムから削除されます。Occurs when the TouchDevice is removed from the input messaging system.

Updated Updated Updated Updated

タッチ メッセージが送信されるときに発生します。Occurs when a touch message is sent.

明示的なインターフェイスの実装

IManipulator.GetPosition(IInputElement) IManipulator.GetPosition(IInputElement) IManipulator.GetPosition(IInputElement) IManipulator.GetPosition(IInputElement)

位置を返します、IManipulatorオブジェクト。Returns the position of the IManipulator object.

IManipulator.Id IManipulator.Id IManipulator.Id IManipulator.Id

一意の識別子を取得、TouchDeviceオペレーティング システムによって提供されます。Gets the unique identifier of the TouchDevice as provided by the operating system.

IManipulator.ManipulationEnded(Boolean) IManipulator.ManipulationEnded(Boolean) IManipulator.ManipulationEnded(Boolean) IManipulator.ManipulationEnded(Boolean)

操作が終了したときに発生します。Occurs when a manipulation has ended.

セキュリティ

UIPermission
このクラスから派生します。for deriving from this class. セキュリティ アクション:InheritanceDemandします。Security action: InheritanceDemand. 関連付けられた列挙体。 UnrestrictedAssociated enumeration: Unrestricted

適用対象