TouchFrameEventArgs.GetPrimaryTouchPoint(IInputElement) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt den aktuellen Touchpunkt des primären Touchgeräts relativ zum angegebenen Element zurück.
public:
System::Windows::Input::TouchPoint ^ GetPrimaryTouchPoint(System::Windows::IInputElement ^ relativeTo);
public System.Windows.Input.TouchPoint GetPrimaryTouchPoint(System.Windows.IInputElement relativeTo);
member this.GetPrimaryTouchPoint : System.Windows.IInputElement -> System.Windows.Input.TouchPoint
Public Function GetPrimaryTouchPoint (relativeTo As IInputElement) As TouchPoint
Parameter
- relativeTo
- IInputElement
Das Element, das den Koordinatenbereich definiert. Wenn Sie WPF absoluten Koordinaten verwenden möchten, geben Sie relativeTo als null an.
Gibt zurück
Die aktuelle Position der primären TouchDevice relativ zum angegebenen Element oder null wenn die Primäre TouchDevice nicht aktiv ist.
Beispiele
Der folgende Code verarbeitet die Fingereingabepunkte, die aus dem TouchFrameEventArgs. Wenn eine Toucheingabe auf dem CanvasFinger gedrückt wird, wird die TouchDevice Aufnahme in die Canvas. Wenn die Berührung angehoben wird, wird sie TouchDevice losgelassen. Wenn sich eine Berührung über die CanvasVerschiebung bewegt, wird die Id Option aktiviert. Wenn die Id Übereinstimmung mit dem Id primären Berührungspunkt übereinstimmt, der die erste Berührung angibt, wird die Position aufgezeichnet. Wenn die Bewegung von der zweiten Berührung stammt, wird eine Linie von der Position der ersten Berührung bis zur Position der zweiten Berührung gezeichnet.
Dieses Beispiel ist Teil eines größeren Beispiels, das in der Touch Klassenübersicht verfügbar ist.
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
Hinweise
Bei einer Reihe aktiver Touchgeräte ist das erste Gerät Activated das primäre Touchgerät. Wenn z. B. zwei Finger den Bildschirm berühren, wird der erste Finger, der unten ist, durch das primäre Touchgerät dargestellt. Wenn der erste Finger angehoben wird, während der zweite Finger noch unten ist, wird nulldas primäre Touchgerät .