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 é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. |