Partager via


TouchDevice Classe

Définition

Représente une entrée tactile unique produite par un doigt sur un écran tactile.

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 un écran Canvas tactile en faisant glisser deux doigts sur un écran tactile. Chaque touche est représentée par un TouchDevice dans le TouchEventArgs. Le modèle est créé en dessinant une ligne entre les points tactiles fournis par les touches. Cet exemple nécessite un écran compatible Avec Windows Touch.

Le balisage suivant crée l’interface utilisateur, qui se compose d’un Canvas élément centré dans une grille et attache les gestionnaires d’événements pour les événements tactiles.

<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. Lorsqu’une touche est enfoncée sur le Canvas, celle-ci TouchDevice est capturée sur le Canvas. Lorsque l’interaction tactile est levée, elle TouchDevice est libérée. Lorsqu’une touche se déplace sur le Canvas, l’option Id est cochée. Si le déplacement provient du premier contact, son emplacement est enregistré. Si le déplacement provient de la deuxième touche, une ligne est dessinée de la position de la première touche à la position de la deuxième touche.

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

Vous accédez généralement à un accès à l’aide TouchDevice de la TouchEventArgs.TouchDevice propriété. Représente TouchDevice une seule interaction tactile sur un écran. Si plusieurs touches sont présentes, utilisez la Id propriété pour les distinguer.

Note

Cette classe contient une demande d’héritage au niveau de la classe qui s’applique à tous les membres. A SecurityException est levée lorsque la classe dérivée n’a pas d’autorisation de confiance totale. Pour plus d’informations sur les demandes de sécurité, consultez Demandes de liaison et Demandes d’héritage.

Constructeurs

Nom Description
TouchDevice(Int32)

Appelé à partir de constructeurs dans des classes dérivées pour initialiser la TouchDevice classe.

Propriétés

Nom Description
ActiveSource

Obtient l’entrée PresentationSource de création de rapports pour cet appareil.

Captured

Obtient l’élément qui a capturé le TouchDevice.

CaptureMode

Obtient la stratégie de capture du TouchDevice.

DirectlyOver

Obtient l’élément sur lequel le point de contact tactile est directement terminé.

Dispatcher

Obtient ce Dispatcher qui DispatcherObject est associé.

(Hérité de DispatcherObject)
Id

Obtient l’identificateur unique du TouchDevicesystème d’exploitation, tel que fourni par le système d’exploitation.

IsActive

Obtient une valeur qui indique si l’appareil est actif.

Target

Obtient l’élément qui reçoit l’entrée du TouchDevice.

Méthodes

Nom Description
Activate()

Ajoute le TouchDevice système de messagerie d’entrée.

Capture(IInputElement, CaptureMode)

Capture une touche à l’élément spécifié à l’aide de l’élément spécifié CaptureMode.

Capture(IInputElement)

Capture une touche à l’élément spécifié à l’aide du Element mode de capture.

CheckAccess()

Détermine si le thread appelant a accès à ce DispatcherObjectfichier .

(Hérité de DispatcherObject)
Deactivate()

Supprime le TouchDevice système de messagerie d’entrée.

Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
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.

GetTouchPoint(IInputElement)

Retourne la position actuelle de l’appareil tactile par rapport à l’élément spécifié.

GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
OnCapture(IInputElement, CaptureMode)

Appelé lorsqu’une touche est capturée sur un élément.

OnManipulationEnded(Boolean)

Appelé lorsqu’une manipulation s’est terminée.

OnManipulationStarted()

Appelé lorsqu’une manipulation est démarrée.

ReportDown()

Signale qu’une touche est enfoncée sur un élément.

ReportMove()

Signale qu’une touche se déplace sur un élément.

ReportUp()

Signale qu’une touche a été levée à partir d’un élément.

SetActiveSource(PresentationSource)

Définit l’entrée PresentationSource de création de rapports pour cet appareil.

Synchronize()

Force la TouchDevice synchronisation de l’interface utilisateur avec des points tactiles sous-jacents.

ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)
VerifyAccess()

Applique que le thread appelant a accès à ce DispatcherObjectfichier .

(Hérité de DispatcherObject)

Événements

Nom Description
Activated

Se produit lorsque l’élément TouchDevice est ajouté au système de messagerie d’entrée.

Deactivated

Se produit lorsque le TouchDevice système de messagerie d’entrée est supprimé.

Updated

Se produit lorsqu’un message tactile est envoyé.

Implémentations d’interfaces explicites

Nom Description
IManipulator.GetPosition(IInputElement)

Retourne la position de l’objet IManipulator .

IManipulator.Id

Obtient l’identificateur unique du TouchDevice système d’exploitation fourni par le système d’exploitation.

IManipulator.ManipulationEnded(Boolean)

Se produit lorsqu’une manipulation s’est terminée.

S’applique à