Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo TouchFrameEventArgs.GetPrimaryTouchPoint (IInputElement)

.NET Framework (current version)
 

Data di pubblicazione: ottobre 2016

Restituisce il punto di tocco corrente del dispositivo a tocco primario rispetto all'elemento specificato.

Spazio dei nomi:   System.Windows.Input
Assembly:  PresentationCore (in PresentationCore.dll)

public TouchPoint GetPrimaryTouchPoint(
	IInputElement relativeTo
)

Parametri

relativeTo
Type: System.Windows.IInputElement

L'elemento che definisce lo spazio delle coordinate. Per utilizzare le coordinate assolute WPF, specificare relativeTo come null.

Valore restituito

Type: System.Windows.Input.TouchPoint

La posizione corrente dell'istanza primaria TouchDevice rispetto all'elemento specificato; o null Se il database primario TouchDevice non è attivo.

In un set di attivo touch dispositivi, il primo dispositivo ad essere Activated è il dispositivo di tocco primario. Ad esempio, se due dita stanno toccando lo schermo, il primo dito che non è attivo è rappresentato da dispositivo a tocco primario. Se il primo dito viene alzato mentre il secondo dito è ancora attivo, il dispositivo di tocco primario diventa null.

Il codice seguente elabora i punti di tocco che vengono recuperati i TouchFrameEventArgs. Quando viene premuto un tocco sul Canvas, TouchDevice viene acquisito il Canvas. Quando il tocco viene sollevato, il TouchDevice viene rilasciato. Quando un tocco si sposta tra il Canvas, Id sia selezionata. Se il Id corrisponde il Id del punto di tocco primario, che indica il primo tocco, viene registrato il relativo percorso. Se lo spostamento deriva dal secondo tocco, una linea viene tracciata dalla posizione del primo tocco alla posizione del secondo tocco.

In questo esempio fa parte di un esempio più esaustivo disponibile nel Touch Cenni preliminari sulla 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);
        }
    }
}                        

.NET Framework
Disponibile da 4.0
Torna all'inizio
Mostra: