Partager via


TouchFrameEventArgs.GetTouchPoints(IInputElement) Méthode

Définition

Retourne une collection qui contient le point tactile actuel de chaque périphérique tactile actif par rapport à l'élément spécifié.

public:
 System::Windows::Input::TouchPointCollection ^ GetTouchPoints(System::Windows::IInputElement ^ relativeTo);
public System.Windows.Input.TouchPointCollection GetTouchPoints (System.Windows.IInputElement relativeTo);
member this.GetTouchPoints : System.Windows.IInputElement -> System.Windows.Input.TouchPointCollection
Public Function GetTouchPoints (relativeTo As IInputElement) As TouchPointCollection

Paramètres

relativeTo
IInputElement

Élément qui définit l'espace de coordonnées. Pour utiliser des coordonnées absolues WPF, attribuez à relativeTo la valeur null.

Retours

Collection qui contient le TouchPoint actuel de chaque TouchDevice actif.

Exemples

Le code suivant traite les points tactiles récupérés à partir de TouchFrameEventArgs. Lorsqu’une touche est enfoncée sur le canevas, le TouchDevice est capturé dans le canevas. Lorsque le contact est déclenché, le TouchDevice est libéré. Lorsqu’une touche se déplace sur le canevas, le Id est coché. Si le Id correspond au Id du point tactile principal, ce qui indique le premier toucher, 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.

Cet exemple fait partie d’un exemple plus grand disponible dans la vue d’ensemble de la Touch classe.

foreach (TouchPoint _touchPoint in e.GetTouchPoints(this.canvas1))
{
    if (_touchPoint.Action == TouchAction.Down)
    {
        // Clear the canvas and capture the touch to it.
        this.canvas1.Children.Clear();
        _touchPoint.TouchDevice.Capture(this.canvas1);
    }

    else if (_touchPoint.Action == TouchAction.Move && e.GetPrimaryTouchPoint(this.canvas1) != null)
    {   
        // This is the first (primary) touch point. Just record its position.
        if (_touchPoint.TouchDevice.Id == e.GetPrimaryTouchPoint(this.canvas1).TouchDevice.Id)
        {
            pt1.X = _touchPoint.Position.X;
            pt1.Y = _touchPoint.Position.Y;
        }

        // This is not the first touch point. Draw a line from the first point to this one.
        else if (_touchPoint.TouchDevice.Id != e.GetPrimaryTouchPoint(this.canvas1).TouchDevice.Id)
        {
            pt2.X = _touchPoint.Position.X;
            pt2.Y = _touchPoint.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;
            this.canvas1.Children.Add(_line);
        }
    }

    else if (_touchPoint.Action == TouchAction.Up)
    {
        // If this touch is captured to the canvas, release it.
        if (_touchPoint.TouchDevice.Captured == this.canvas1)
        {
            this.canvas1.ReleaseTouchCapture(_touchPoint.TouchDevice);
        }
    }
}
For Each _touchPoint In e.GetTouchPoints(Me.canvas1)

    If _touchPoint.Action = TouchAction.Down Then
        ' Clear the canvas and capture the touch to it.
        canvas1.Children.Clear()
        _touchPoint.TouchDevice.Capture(canvas1)

    ElseIf _touchPoint.Action = TouchAction.Move Then
        ' This is the first (primary) touch point. Just record its position.
        If _touchPoint.TouchDevice.Id = e.GetPrimaryTouchPoint(Me.canvas1).TouchDevice.Id Then
            pt1.X = _touchPoint.Position.X
            pt1.Y = _touchPoint.Position.Y

            ' This is not the first touch point; draw a line from the first point to this one.
        ElseIf _touchPoint.TouchDevice.Id <> e.GetPrimaryTouchPoint(Me.canvas1).TouchDevice.Id Then
            pt2.X = _touchPoint.Position.X
            pt2.Y = _touchPoint.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
            Me.canvas1.Children.Add(_line)
        End If

    ElseIf _touchPoint.Action = TouchAction.Up Then
        ' If this touch is captured to the canvas, release it.
        If (_touchPoint.TouchDevice.Captured Is canvas1) Then
            canvas1.ReleaseTouchCapture(_touchPoint.TouchDevice)
        End If
    End If
Next

S’applique à