TouchFrameEventArgs.GetPrimaryTouchPoint(IInputElement) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Birincil dokunmatik cihazın belirtilen öğeye göre geçerli dokunma noktasını döndürür.
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
Parametreler
- relativeTo
- IInputElement
Koordinat alanını tanımlayan öğe. WPF mutlak koordinatlarını kullanmak için olarak null
belirtinrelativeTo
.
Döndürülenler
Birincil öğenin TouchDevice belirtilen öğeye göre geçerli konumu veya null
birincil TouchDevice etkin değilse.
Örnekler
Aşağıdaki kod, içinden TouchFrameEventArgsalınan dokunma noktalarını işler. üzerinde Canvasbir dokunuşa basıldığında, TouchDevice öğesine yakalanır Canvas. Dokunma kaldırıldığında serbest TouchDevice bırakılır. Bir dokunuş üzerinde CanvasId hareket ettiğinde, işaretlenir. Id, ilk dokunma noktasını gösteren birincil dokunma noktasının konumuyla eşleşiyorsaId, konumu kaydedilir. Hareket ikinci dokunuştan geldiyse, ilk dokunuşun konumundan ikinci dokunuşun konumuna bir çizgi çizilir.
Bu örnek, sınıfa genel bakış bölümünde Touch bulunan daha büyük bir örneğin bir parçasıdır.
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
Açıklamalar
Bir dizi etkin dokunmatik cihazda ilk cihaz Activated birincil dokunmatik cihazdır. Örneğin, iki parmak ekrana dokunuyorsa, aşağı olan ilk parmak birincil dokunmatik cihaz tarafından temsil edilir. İlk parmak hala aşağıdayken kaldırılırsa birincil dokunmatik cihaz olur null
.