TouchFrameEventArgs Osztály

Definíció

Adatokat biztosít az FrameReported eseményhez.

public ref class TouchFrameEventArgs sealed : EventArgs
public sealed class TouchFrameEventArgs : EventArgs
type TouchFrameEventArgs = class
    inherit EventArgs
Public NotInheritable Class TouchFrameEventArgs
Inherits EventArgs
Öröklődés
TouchFrameEventArgs

Példák

Az alábbi példa kezeli az eseményt FrameReported , és hozzáfér az érintéses adatokhoz a TouchFrameEventArgs. Ha egy érintést lenyom a Canvasgombra, a TouchDevice rendszer rögzíti a elemet.Canvas Az érintés felemelésekor a készülék felengedi a készüléket TouchDevice . Ha egy érintés áthalad a Canvasterületen, a rendszer ellenőrzi.Id Ha az áthelyezés az első érintésről érkezett, a rendszer rögzíti a helyét. Ha az áthelyezés a második érintésről érkezett, az első érintés helyzetéből a második érintés pozíciójába húzunk egy vonalat.

Ez a példa egy nagyobb, az Touch osztály áttekintésében elérhető példa része.

public partial class MainWindow : Window
{
    // Variables for tracking the position of two points.
    Point pt1, pt2 = new Point();
    
    public MainWindow()
    {
        InitializeComponent();
        Touch.FrameReported += new TouchFrameEventHandler(Touch_FrameReported);
    }

    void Touch_FrameReported(object sender, TouchFrameEventArgs e)
    {
        if (this.canvas1 != null)
        {
            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);
                    }
                }
            }                        
        }
    }
}
Class MainWindow
    ' Variables for tracking the position of two points.
    Private pt1, pt2 As Point

    Public Sub New()
        InitializeComponent()
        AddHandler Touch.FrameReported, AddressOf Touch_FrameReported
    End Sub

    Private Sub Touch_FrameReported(ByVal sender As System.Object, ByVal e As System.Windows.Input.TouchFrameEventArgs)
        If (canvas1 IsNot Nothing) Then
            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
        End If
    End Sub
End Class

Megjegyzések

Az FrameReported esemény a Silverlight-kompatibilis Windows megjelenítési alaprendszer (WPF) része. Ha nem kell gondoskodnia a Silverlighttal való kompatibilitásról, használja az érintéses eseményeket, például TouchDown és TouchMove, be UIElement, UIElement3Dvagy ContentElement.

TouchFrameEventArgs A segítségével lekérheti az TouchPoint érintéses esemény szempontjából releváns értékeket. TouchPointA helyről lekérheti az Position érintést, és megállapíthatja, hogy az TouchAction adott művelet vagy Down művelet volt-eMoveUp. Azt is használhatja, TouchPoint hogy a TouchDevice. TouchDeviceA helyről meghatározhatja az eszköztId, és információkat kaphat az érintett elemről.

Tulajdonságok

Name Description
Timestamp

Lekéri az esemény időbélyegét.

Metódusok

Name Description
Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetPrimaryTouchPoint(IInputElement)

Az elsődleges érintőeszköz aktuális érintési pontját adja vissza a megadott elemhez viszonyítva.

GetTouchPoints(IInputElement)

Egy gyűjteményt ad vissza, amely az egyes aktív érintéses eszközök aktuális érintési pontját tartalmazza a megadott elemhez képest.

GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
SuspendMousePromotionUntilTouchUp()

Ez a tag nincs implementálva.

ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

A következőre érvényes: