TouchDevice Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 Canvas 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 qui est 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 pression tactile est enfoncée sur , Canvasle TouchDevice est capturé dans .Canvas Lorsque la pression tactile est levée, le TouchDevice est relâché. Lorsqu’une pression tactile se déplace sur , Canvasest Id coché. Si le déplacement provient de la première touche, son emplacement est enregistré. Si le mouvement 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 TouchDevice à l’aide de la TouchEventArgs.TouchDevice propriété . Un TouchDevice représente une seule pression tactile sur un écran. Si plusieurs touches sont présentes, utilisez la Id propriété pour les distinguer.
Notes
Cette classe contient une demande d’héritage au niveau de la classe qui s’applique à tous les membres. Un 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 lien et demandes d’héritage.
Constructeurs
TouchDevice(Int32) |
Appelée à partir des constructeurs des classes dérivées pour initialiser la classe TouchDevice. |
Propriétés
ActiveSource |
Obtient la PresentationSource qui signale l'entrée pour ce périphérique. |
Captured |
Obtient l'élément qui a capturé le TouchDevice. |
CaptureMode |
Obtient la stratégie de capture de TouchDevice. |
DirectlyOver |
Obtient l'élément sur lequel est directement situé le point de contact tactile. |
Dispatcher |
Obtient le Dispatcher associé à DispatcherObject. (Hérité de DispatcherObject) |
Id |
Obtient l'identificateur unique du TouchDevice, tel qu'il est fourni par le système d'exploitation. |
IsActive |
Obtient une valeur qui indique si le périphérique est actif. |
Target |
Obtient l'élément qui reçoit l'entrée de TouchDevice. |
Méthodes
Activate() |
Ajoute le TouchDevice au système de messagerie d'entrée. |
Capture(IInputElement) |
Capture une pression tactile pour l'élément spécifié à l'aide du mode de capture Element. |
Capture(IInputElement, CaptureMode) |
Capture une pression tactile pour l'élément spécifié à l'aide du CaptureMode défini. |
CheckAccess() |
Détermine si le thread appelant a accès à ce DispatcherObject. (Hérité de DispatcherObject) |
Deactivate() |
Supprime le TouchDevice du 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() |
Fait office 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 du périphérique tactile relatif à l'élément spécifié. |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
OnCapture(IInputElement, CaptureMode) |
Appelée lorsqu'une pression tactile est capturée pour un élément. |
OnManipulationEnded(Boolean) |
Appelée lorsqu'une manipulation est terminée. |
OnManipulationStarted() |
Appelée lorsqu'une manipulation est démarrée. |
ReportDown() |
Signale qu'une pression tactile a été exercée sur un élément. |
ReportMove() |
Signale qu'une pression tactile a parcouru un élément. |
ReportUp() |
Signale qu'une pression tactile n'est plus exercée sur un élément. |
SetActiveSource(PresentationSource) |
Définit PresentationSource qui signale l'entrée pour ce périphérique. |
Synchronize() |
Force le TouchDevice à synchroniser l'interface utilisateur avec les points tactiles sous-jacents. |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |
VerifyAccess() |
Garantit que le thread appelant a accès à DispatcherObject. (Hérité de DispatcherObject) |
Événements
Activated |
Se produit lorsque TouchDevice est ajouté au système de messagerie d’entrée. |
Deactivated |
Se produit lorsque le TouchDevice est supprimé du système de messagerie d'entrée. |
Updated |
Se produit lorsqu'un message tactile est envoyé. |
Implémentations d’interfaces explicites
IManipulator.GetPosition(IInputElement) |
Retourne la position de l'objet IManipulator. |
IManipulator.Id |
Obtient l'identificateur unique du TouchDevice, tel qu'il est fourni par le système d'exploitation. |
IManipulator.ManipulationEnded(Boolean) |
Se produit lorsqu'une manipulation est terminée. |