TouchDevice Sınıf
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.
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. |