TouchDevice TouchDevice TouchDevice TouchDevice Class

Definition

Stellt eine einzelne Fingereingabe auf einem Touchscreen dar.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
Vererbung
Implementiert

Beispiele

Im folgenden Beispiel können Sie einfache Muster für einen Canvas erstellen, indem Sie zwei Finger auf einen Touchscreen ziehen.The following example enables you to create simple patterns on a Canvas by dragging two fingers on a touchscreen. Jede Fingereingabe wird durch eine TouchDevice in der TouchEventArgsdargestellt.Each touch is represented by a TouchDevice in the TouchEventArgs. Das Muster wird erstellt, indem eine Linie zwischen den Berührungspunkten gezeichnet wird, die von den Berührungen bereitgestellt werden.The pattern is created by drawing a line between the touch points that are provided by the touches. Dieses Beispiel erfordert einen Windows touchkompatiblen Bildschirm.This example requires a Windows Touch-compatible screen.

Das folgende Markup erstellt die Benutzeroberfläche, die aus einem Canvas besteht, das in einem Raster zentriert ist, und fügt die Ereignishandler für die Berührungs Ereignisse an.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>

Im folgenden Code werden die Berührungs Ereignisse behandelt.The following code handles the touch events. Wenn eine Fingereingabe auf dem Canvasgedrückt wird, wird der TouchDevice in der Canvasaufgezeichnet.When a touch is pressed on the Canvas, the TouchDevice is captured to the Canvas. Wenn die Fingereingabe angehoben wird, TouchDevice wird die freigegeben.When the touch is lifted, the TouchDevice is released. Wenn eine Fingereingabe auf dem Canvasverschoben wird Id , wird der aktiviert.When a touch moves on the Canvas, the Id is checked. Wenn die Verschiebung von der ersten Fingereingabe stammt, wird der Speicherort aufgezeichnet.If the move came from the first touch, its location is recorded. Wenn der Verschiebe Vorgang von der zweiten Berührung stammt, wird eine Linie von der Position der ersten Fingereingabe bis zur Position des zweiten Zieh Punkts gezeichnet.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

Hinweise

In der Regel greifen TouchDevice Sie mithilfe der TouchEventArgs.TouchDevice -Eigenschaft auf ein zu.You typically access a TouchDevice by using the TouchEventArgs.TouchDevice property. Ein TouchDevice stellt eine einzelne Fingereingabe auf einem Bildschirm dar.A TouchDevice represents a single touch on a screen. Wenn mehrere Berührungen vorhanden sind, verwenden Id Sie die-Eigenschaft, um zwischen Ihnen zu unterscheiden.If multiple touches are present, use the Id property to distinguish between them.

Hinweis

Diese Klasse enthält eine Vererbungs Anforderung auf Klassenebene, die für alle Member gilt.This class contains an inheritance demand at the class level that applies to all members. Eine SecurityException wird ausgelöst, wenn die abgeleitete Klasse nicht über die Berechtigung für volle Vertrauenswürdigkeit verfügt.A SecurityException is thrown when the derived class does not have full-trust permission. Weitere Informationen zu Sicherheitsanforderungen finden Sie unter Link Aufrufe und Vererbungs Anforderungen.For more information about security demands, see Link Demands and Inheritance Demands.

Konstruktoren

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

Wird von Konstruktoren in abgeleiteten Klassen aufgerufen, um die TouchDevice-Klasse zu initialisieren.Called from constructors in derived classes to initialize the TouchDevice class.

Eigenschaften

ActiveSource ActiveSource ActiveSource ActiveSource

Ruft die PresentationSource ab, die Eingaben für dieses Gerät meldet.Gets the PresentationSource that is reporting input for this device.

Captured Captured Captured Captured

Ruft das Element ab, das das TouchDevice-Objekt erfasst hat.Gets the element that captured the TouchDevice.

CaptureMode CaptureMode CaptureMode CaptureMode

Ruft die Erfassungsrichtlinie für TouchDevice ab.Gets the capture policy of the TouchDevice.

DirectlyOver DirectlyOver DirectlyOver DirectlyOver

Ruft das Element ab, das sich direkt unter dem Fingereingabekontaktpunkt befindet.Gets the element that the touch contact point is directly over.

Dispatcher Dispatcher Dispatcher Dispatcher

Ruft den Dispatcher ab, der diesem DispatcherObject zugeordnet ist.Gets the Dispatcher this DispatcherObject is associated with.

(Inherited from DispatcherObject)
Id Id Id Id

Ruft den eindeutigen Bezeichner des TouchDevice ab, der vom Betriebssystem bereitgestellt wird.Gets the unique identifier of the TouchDevice, as provided by the operating system.

IsActive IsActive IsActive IsActive

Ruft einen Wert ab, der angibt, ob das Gerät aktiv ist.Gets a value that indicates whether the device is active.

Target Target Target Target

Ruft das Element ab, das die Eingaben vom TouchDevice-Objekt empfängt.Gets the element that receives input from the TouchDevice.

Methoden

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

Fügt das TouchDevice-Objekt dem Eingabemessagingsystem hinzu.Adds the TouchDevice to the input messaging system.

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

Erfasst eine Fingereingabe für das angegebene Element mit dem Element-Erfassungsmodus.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)

Erfasst Fingereingaben für das angegebene Element mit dem angegebenen CaptureMode.Captures a touch to the specified element by using the specified CaptureMode.

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

Bestimmt, ob der aufrufende Thread auf dieses DispatcherObject zugreifen kann.Determines whether the calling thread has access to this DispatcherObject.

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

Entfernt den TouchDevice aus dem Eingabemessagingsystem.Removes the TouchDevice from the input messaging system.

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

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

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

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Inherited from Object)
GetIntermediateTouchPoints(IInputElement) GetIntermediateTouchPoints(IInputElement) GetIntermediateTouchPoints(IInputElement) GetIntermediateTouchPoints(IInputElement)

Gibt beim Überschreiben in einer abgeleiteten Klasse alle zwischen den letzten und vorherigen Berührungsereignissen gesammelten Berührungspunkte zurück.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)

Gibt die aktuelle Position des Fingereingabegeräts relativ zum angegebenen Element zurück.Returns the current position of the touch device relative to the specified element.

GetType() GetType() GetType() GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

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

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
OnCapture(IInputElement, CaptureMode) OnCapture(IInputElement, CaptureMode) OnCapture(IInputElement, CaptureMode) OnCapture(IInputElement, CaptureMode)

Wird aufgerufen, wenn eine Fingereingabe für ein Element erfasst wird.Called when a touch is captured to an element.

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

Wird aufgerufen, wenn eine Änderung beendet wurde.Called when a manipulation has ended.

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

Wird aufgerufen, wenn eine Bearbeitung gestartet wird.Called when a manipulation is started.

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

Berichtet, dass eine Fingereingabe in einem Element erfolgt ist.Reports that a touch is pressed on an element.

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

Berichtet, dass eine Fingereingabe über einem Element erfolgt.Reports that a touch is moving across an element.

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

Berichtet, dass eine Fingereingabe von einem Element transformiert wurde.Reports that a touch was lifted from an element.

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

Legt das PresentationSource-Objekt fest, das Eingaben für dieses Gerät meldet.Sets the PresentationSource that is reporting input for this device.

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

Zwingt das TouchDevice, die Benutzeroberfläche mit zugrunde liegenden Berührungspunkten zu synchronisieren.Forces the TouchDevice to synchronize the user interface with underlying touch points.

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

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

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

Erzwingt, dass der aufrufende Thread auf dieses DispatcherObject zugreifen kann.Enforces that the calling thread has access to this DispatcherObject.

(Inherited from DispatcherObject)

Ereignisse

Activated Activated Activated Activated

Tritt auf, wenn das TouchDevice dem Eingabemessagingsystem hinzugefügt wird.Occurs when the TouchDevice is added to the input messaging system.

Deactivated Deactivated Deactivated Deactivated

Tritt ein, wenn das TouchDevice aus dem Eingabemessagingsystem entfernt wird.Occurs when the TouchDevice is removed from the input messaging system.

Updated Updated Updated Updated

Tritt auf, wenn eine Fingereingabenachricht gesendet wird.Occurs when a touch message is sent.

Explizite Schnittstellenimplementierungen

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

Gibt die Position des IManipulator-Objekts zurück.Returns the position of the IManipulator object.

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

Ruft den eindeutigen Bezeichner des TouchDevice ab, der vom Betriebssystem bereitgestellt wird.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)

Tritt ein, wenn eine Änderung beendet wurde.Occurs when a manipulation has ended.

Sicherheit

UIPermission
zum Ableiten von dieser Klasse.for deriving from this class. Sicherheitsaktion: InheritanceDemand.Security action: InheritanceDemand. Zugehörige Enumeration:UnrestrictedAssociated enumeration: Unrestricted

Gilt für: