TouchDevice TouchDevice TouchDevice TouchDevice Class

Définition

Représente une entrée tactile unique produite par un doigt sur un écran tactile.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
Héritage
Implémente

Exemples

L’exemple suivant vous permet de créer des modèles simples sur Canvas un en faisant glisser deux doigts sur un écran tactile.The following example enables you to create simple patterns on a Canvas by dragging two fingers on a touchscreen. Chaque pression tactile est représentée par TouchDevice un dans TouchEventArgsle.Each touch is represented by a TouchDevice in the TouchEventArgs. Le modèle est créé en dessinant une ligne entre les points tactiles fournis par le touche.The pattern is created by drawing a line between the touch points that are provided by the touches. Cet exemple nécessite un écran tactile Windows.This example requires a Windows Touch-compatible screen.

Le balisage suivant crée l’interface utilisateur, qui se compose Canvas d’un qui est centré dans une grille et qui attache les gestionnaires d’événements pour les événements tactiles.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>

Le code suivant gère les événements tactiles.The following code handles the touch events. Quand une pression tactile est enfoncée sur TouchDevice le Canvas, le est Canvascapturé dans le.When a touch is pressed on the Canvas, the TouchDevice is captured to the Canvas. Lorsque le toucher est levé, le TouchDevice est relâché.When the touch is lifted, the TouchDevice is released. Quand une pression tactile se déplace Canvassur le Id , est activé.When a touch moves on the Canvas, the Id is checked. Si le déplacement provenait de la première touche Touch, son emplacement est enregistré.If the move came from the first touch, its location is recorded. Si le déplacement provenait de la deuxième pression tactile, une ligne est dessinée de la position de la première touche à la position de la deuxième pression tactile.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

Remarques

En général, vous TouchDevice accédez à un TouchEventArgs.TouchDevice à l’aide de la propriété.You typically access a TouchDevice by using the TouchEventArgs.TouchDevice property. Un TouchDevice représente une touche tactile unique sur un écran.A TouchDevice represents a single touch on a screen. En présence de plusieurs touches, utilisez la Id propriété pour les distinguer.If multiple touches are present, use the Id property to distinguish between them.

Notes

Cette classe contient une demande d’héritage au niveau de la classe qui s’applique à tous les membres.This class contains an inheritance demand at the class level that applies to all members. Une SecurityException exception est levée lorsque la classe dérivée ne dispose pas d’une autorisation de confiance totale.A SecurityException is thrown when the derived class does not have full-trust permission. Pour plus d’informations sur les demandes de sécurité, consultez demandes de liaison et demandes d’héritage.For more information about security demands, see Link Demands and Inheritance Demands.

Constructeurs

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

Appelée à partir des constructeurs des classes dérivées pour initialiser la classe TouchDevice.Called from constructors in derived classes to initialize the TouchDevice class.

Propriétés

ActiveSource ActiveSource ActiveSource ActiveSource

Obtient la PresentationSource qui signale l'entrée pour ce périphérique.Gets the PresentationSource that is reporting input for this device.

Captured Captured Captured Captured

Obtient l'élément qui a capturé le TouchDevice.Gets the element that captured the TouchDevice.

CaptureMode CaptureMode CaptureMode CaptureMode

Obtient la stratégie de capture de TouchDevice.Gets the capture policy of the TouchDevice.

DirectlyOver DirectlyOver DirectlyOver DirectlyOver

Obtient l'élément sur lequel est directement situé le point de contact tactile.Gets the element that the touch contact point is directly over.

Dispatcher Dispatcher Dispatcher Dispatcher

Obtient le Dispatcher associé à DispatcherObject.Gets the Dispatcher this DispatcherObject is associated with.

(Inherited from DispatcherObject)
Id Id Id Id

Obtient l'identificateur unique du TouchDevice, tel qu'il est fourni par le système d'exploitation.Gets the unique identifier of the TouchDevice, as provided by the operating system.

IsActive IsActive IsActive IsActive

Obtient une valeur qui indique si le périphérique est actif.Gets a value that indicates whether the device is active.

Target Target Target Target

Obtient l'élément qui reçoit l'entrée de TouchDevice.Gets the element that receives input from the TouchDevice.

Méthodes

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

Ajoute le TouchDevice au système de messagerie d'entrée.Adds the TouchDevice to the input messaging system.

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

Capture une pression tactile pour l'élément spécifié à l'aide du mode de capture 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)

Capture une pression tactile pour l'élément spécifié à l'aide du CaptureMode défini.Captures a touch to the specified element by using the specified CaptureMode.

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

Détermine si le thread appelant a accès à ce DispatcherObject.Determines whether the calling thread has access to this DispatcherObject.

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

Supprime le TouchDevice du système de messagerie d'entrée.Removes the TouchDevice from the input messaging system.

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

Détermine si l'objet spécifié est identique à l'objet actuel.Determines whether the specified object is equal to the current object.

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

Fait office de fonction de hachage par défaut.Serves as the default hash function.

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

En cas de substitution dans une classe dérivée, retourne tous les points tactiles collectés entre les événements tactiles les plus récents et précédents.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)

Retourne la position actuelle du périphérique tactile relatif à l'élément spécifié.Returns the current position of the touch device relative to the specified element.

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

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

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

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

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

Appelée lorsqu'une pression tactile est capturée pour un élément.Called when a touch is captured to an element.

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

Appelée lorsqu'une manipulation est terminée.Called when a manipulation has ended.

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

Appelée lorsqu'une manipulation est démarrée.Called when a manipulation is started.

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

Signale qu'une pression tactile a été exercée sur un élément.Reports that a touch is pressed on an element.

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

Signale qu'une pression tactile a parcouru un élément.Reports that a touch is moving across an element.

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

Signale qu'une pression tactile n'est plus exercée sur un élément.Reports that a touch was lifted from an element.

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

Définit PresentationSource qui signale l'entrée pour ce périphérique.Sets the PresentationSource that is reporting input for this device.

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

Force le TouchDevice à synchroniser l'interface utilisateur avec les points tactiles sous-jacents.Forces the TouchDevice to synchronize the user interface with underlying touch points.

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

Retourne une chaîne qui représente l'objet actuel.Returns a string that represents the current object.

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

Garantit que le thread appelant a accès à DispatcherObject.Enforces that the calling thread has access to this DispatcherObject.

(Inherited from DispatcherObject)

Événements

Activated Activated Activated Activated

Se produit lorsque TouchDevice est ajouté au système de messagerie d’entrée.Occurs when the TouchDevice is added to the input messaging system.

Deactivated Deactivated Deactivated Deactivated

Se produit lorsque le TouchDevice est supprimé du système de messagerie d'entrée.Occurs when the TouchDevice is removed from the input messaging system.

Updated Updated Updated Updated

Se produit lorsqu'un message tactile est envoyé.Occurs when a touch message is sent.

Implémentations d’interfaces explicites

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

Retourne la position de l'objet IManipulator.Returns the position of the IManipulator object.

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

Obtient l'identificateur unique du TouchDevice, tel qu'il est fourni par le système d'exploitation.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)

Se produit lorsqu'une manipulation est terminée.Occurs when a manipulation has ended.

Sécurité

UIPermission
pour dériver de cette classe.for deriving from this class. Action de sécurité InheritanceDemand:.Security action: InheritanceDemand. Énumération associée:UnrestrictedAssociated enumeration: Unrestricted

S’applique à