TouchDevice Sınıf

Tanım

Dokunmatik ekranda parmakla üretilen tek bir dokunmatik girişi temsil eder.

public ref class TouchDevice abstract : System::Windows::Input::InputDevice, System::Windows::Input::IManipulator
public abstract class TouchDevice : System.Windows.Input.InputDevice, System.Windows.Input.IManipulator
type TouchDevice = class
    inherit InputDevice
    interface IManipulator
Public MustInherit Class TouchDevice
Inherits InputDevice
Implements IManipulator
Devralma
Uygulamalar

Örnekler

Aşağıdaki örnek, dokunmatik ekranda iki parmağınızı sürükleyerek basit desenler Canvas oluşturmanızı sağlar. Her dokunuş içinde TouchEventArgsbir TouchDevice ile temsil edilir. Desen, dokunmalar tarafından sağlanan dokunma noktaları arasında bir çizgi çizilerek oluşturulur. Bu örnek, Windows Touch uyumlu bir ekran gerektirir.

Aşağıdaki işaretleme, kılavuzda ortalanmış bir Canvas kullanıcı arabirimini oluşturur ve dokunma olayları için olay işleyicilerini ekler.

<Window x:Class="WpfTouchEventsSample.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="525" Width="525">
    <Grid>
        <Canvas x:Name="canvas1"
                Width="500" Height="500"
                Background="Black"
                TouchDown="canvas_TouchDown"
                TouchMove="canvas_TouchMove"
                TouchUp="canvas_TouchUp" />
    </Grid>
</Window>

Aşağıdaki kod dokunma olayları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. üzerinde CanvasId bir dokunma hareket ettiğinde, işaretlenir. Hareket ilk dokunuştan geldiyse konumu kaydedilir. Hareket ikinci dokunuştan geldiyse, ilk dokunuşun konumundan ikinci dokunuşun konumuna bir çizgi çizilir.

using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Shapes;
using System.Windows.Controls;

namespace WpfTouchEventsSample
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        // Variables to track the first two touch points 
        // and the ID of the first touch point.
        private Point pt1, pt2 = new Point();
        private int firstTouchId = -1;

        public MainWindow()
        {
            InitializeComponent();
        }

        private void canvas_TouchDown(object sender, TouchEventArgs e)
        {
            Canvas _canvas = (Canvas)sender as Canvas;
            if (_canvas != null)
            {
                _canvas.Children.Clear();
                e.TouchDevice.Capture(_canvas);

                // Record the ID of the first touch point if it hasn't been recorded.
                if (firstTouchId == -1)
                    firstTouchId = e.TouchDevice.Id;
            }
        }

        private void canvas_TouchMove(object sender, TouchEventArgs e)
        {
            Canvas _canvas = (Canvas)sender as Canvas;
            if (_canvas != null)
            {
                TouchPoint tp = e.GetTouchPoint(_canvas);
                // This is the first touch point; just record its position.
                if (e.TouchDevice.Id == firstTouchId)
                {
                    pt1.X = tp.Position.X;
                    pt1.Y = tp.Position.Y;
                }
                // This is not the first touch point; draw a line from the first point to this one.
                else if (e.TouchDevice.Id != firstTouchId)
                {
                    pt2.X = tp.Position.X;
                    pt2.Y = tp.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;
                    _canvas.Children.Add(_line);
                }
            }
        }

        private void canvas_TouchUp(object sender, TouchEventArgs e)
        {
            Canvas _canvas = (Canvas)sender as Canvas;
            if (_canvas != null && e.TouchDevice.Captured == _canvas)
            {
                _canvas.ReleaseTouchCapture(e.TouchDevice);
            }
        }
    }
}
Class MainWindow
    ' Variables to track the first two touch points 
    ' and the ID of the first touch point.
    Private pt1, pt2 As Point
    Private firstTouchId As Integer = -1
    ' Touch Down
    Private Sub canvas_TouchDown(ByVal sender As System.Object, ByVal e As System.Windows.Input.TouchEventArgs)
        Dim _canvas As Canvas = CType(sender, Canvas)
        If (_canvas IsNot Nothing) Then
            _canvas.Children.Clear()
            e.TouchDevice.Capture(_canvas)

            ' Record the ID of the first touch point if it hasn't been recorded.
            If firstTouchId = -1 Then
                firstTouchId = e.TouchDevice.Id
            End If
        End If
    End Sub
    ' Touch Move
    Private Sub canvas_TouchMove(ByVal sender As System.Object, ByVal e As System.Windows.Input.TouchEventArgs)
        Dim _canvas As Canvas = CType(sender, Canvas)
        If (_canvas IsNot Nothing) Then
            Dim tp = e.GetTouchPoint(_canvas)
            ' This is the first touch point; just record its position.
            If e.TouchDevice.Id = firstTouchId Then
                pt1.X = tp.Position.X
                pt1.Y = tp.Position.Y

                ' This is not the first touch point; draw a line from the first point to this one.
            ElseIf e.TouchDevice.Id <> firstTouchId Then
                pt2.X = tp.Position.X
                pt2.Y = tp.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
                _canvas.Children.Add(_line)
            End If
        End If
    End Sub
    ' Touch Up
    Private Sub canvas_TouchUp(ByVal sender As System.Object, ByVal e As System.Windows.Input.TouchEventArgs)
        Dim _canvas As Canvas = CType(sender, Canvas)
        If (_canvas IsNot Nothing AndAlso e.TouchDevice.Captured Is _canvas) Then
            _canvas.ReleaseTouchCapture(e.TouchDevice)

        End If
    End Sub
End Class

Açıklamalar

Genellikle özelliğini kullanarak a'ya TouchDevice erişebilirsiniz TouchEventArgs.TouchDevice . A TouchDevice , ekrandaki tek bir dokunuşu temsil eder. Birden çok dokunuş varsa, aralarında ayrım yapmak için özelliğini kullanın Id .

Not

Bu sınıf, tüm üyeler için geçerli olan sınıf düzeyinde bir devralma talebi içerir. SecurityException Türetilen sınıfın tam güven izni olmadığında oluşturulur. Güvenlik talepleri hakkında daha fazla bilgi için bkz. Bağlantı Talepleri ve Devralma Talepleri.

Oluşturucular

TouchDevice(Int32)

sınıfını başlatmak için türetilmiş sınıflardaki oluşturuculardan çağrılır TouchDevice .

Özellikler

ActiveSource

PresentationSource Bu cihaz için girişi bildiren değerini alır.

Captured

öğesini yakalayan öğeyi TouchDevicealır.

CaptureMode

yakalama ilkesini TouchDevicealır.

DirectlyOver

Dokunmatik temas noktasının doğrudan üzerinde olduğu öğeyi alır.

Dispatcher

Dispatcher Bunun DispatcherObject ilişkili olduğunu alır.

(Devralındığı yer: DispatcherObject)
Id

İşletim sistemi tarafından sağlanan benzersiz tanımlayıcısını TouchDevicealır.

IsActive

Cihazın etkin olup olmadığını gösteren bir değer alır.

Target

öğesinden TouchDevicegiriş alan öğesini alır.

Yöntemler

Activate()

TouchDevice giriş mesajlaşma sistemine öğesini ekler.

Capture(IInputElement)

Yakalama modunu kullanarak belirtilen öğeye dokunmayı Element yakalar.

Capture(IInputElement, CaptureMode)

Belirtilen öğesini kullanarak CaptureModebelirtilen öğeye bir dokunuş yakalar.

CheckAccess()

Çağıran iş parçacığının bu DispatcherObjectöğesine erişimi olup olmadığını belirler.

(Devralındığı yer: DispatcherObject)
Deactivate()

TouchDevice giriş mesajlaşma sisteminden öğesini kaldırır.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetIntermediateTouchPoints(IInputElement)

Türetilmiş bir sınıfta geçersiz kılındığında, en son ve önceki dokunma olayları arasında toplanan tüm dokunma noktalarını döndürür.

GetTouchPoint(IInputElement)

Dokunmatik cihazın belirtilen öğeye göre geçerli konumunu döndürür.

GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
OnCapture(IInputElement, CaptureMode)

Bir öğeye dokunma yakalandığında çağrılır.

OnManipulationEnded(Boolean)

Bir işleme sona erdiğinde çağrılır.

OnManipulationStarted()

Bir işleme başlatıldığında çağrılır.

ReportDown()

Bir öğeye dokunmaya basıldığını bildirir.

ReportMove()

Dokunmanın bir öğe arasında hareket ettiğini bildirir.

ReportUp()

Bir dokunmanın bir öğeden kaldırıldığını bildirir.

SetActiveSource(PresentationSource)

PresentationSource Bu cihaz için girişi bildireni ayarlar.

Synchronize()

kullanıcı arabirimini TouchDevice temel alınan dokunma noktalarıyla eşitlemeye zorlar.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)
VerifyAccess()

Çağıran iş parçacığının bu DispatcherObjecterişimine sahip olmasını zorlar.

(Devralındığı yer: DispatcherObject)

Ekinlikler

Activated

girişi mesajlaşma sistemine eklendiğinde TouchDevice gerçekleşir.

Deactivated

, giriş mesajlaşma sisteminden kaldırıldığında TouchDevice gerçekleşir.

Updated

Dokunmatik ileti gönderildiğinde gerçekleşir.

Belirtik Arabirim Kullanımları

IManipulator.GetPosition(IInputElement)

Nesnenin IManipulator konumunu döndürür.

IManipulator.Id

İşletim sistemi tarafından sağlanan benzersiz tanımlayıcısını TouchDevice alır.

IManipulator.ManipulationEnded(Boolean)

Bir düzenleme sona erdiğinde gerçekleşir.

Şunlara uygulanır