TouchDevice Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Egyetlen érintéses bemenetet jelöl, amelyet egy ujjal hoz létre egy érintőképernyőn.
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
- Öröklődés
- Megvalósítás
Példák
Az alábbi példa lehetővé teszi, hogy egyszerű mintákat hozzon létre egy Canvas érintőképernyőn két ujjának húzásával. Minden érintést a TouchDeviceTouchEventArgs. A minta úgy jön létre, hogy egy vonalat rajzol az érintések által biztosított érintési pontok között. Ehhez a példához Windows érintőképernyős képernyőre van szükség.
Az alábbi korrektúra létrehozza a felhasználói felületet, amely egy Canvas rács közepén található, és csatolja az eseménykezelőket az érintéses eseményekhez.
<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>
Az alábbi kód kezeli az érintéses eseményeket. 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 a képernyőn Canvasmozog, a rendszer bejelöli a Id gombot. 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.
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
Megjegyzések
Általában a TouchDevice tulajdonság használatával fér hozzá egyhez TouchEventArgs.TouchDevice . Az A TouchDevice egyetlen érintést jelöli a képernyőn. Ha több érintés is jelen van, a Id tulajdonság használatával különbséget tesz közöttük.
Note
Ez az osztály az összes tagra vonatkozó öröklési igényt tartalmaz az osztály szintjén. Az A SecurityException akkor jön létre, ha a származtatott osztály nem rendelkezik teljes megbízhatósági engedéllyel. A biztonsági követelményekről további információt a Követelmények csatolása és az Öröklési igények hivatkozása című témakörben talál.
Konstruktorok
| Name | Description |
|---|---|
| TouchDevice(Int32) |
A származtatott osztályok konstruktoraitól az osztály inicializálásához TouchDevice hívható meg. |
Tulajdonságok
| Name | Description |
|---|---|
| ActiveSource |
Lekéri az PresentationSource eszközhöz tartozó jelentési bemenetet. |
| Captured |
Lekéri az elemet, amely rögzítette a TouchDevice. |
| CaptureMode |
Lekéri a rögzítési szabályzatot a TouchDevice. |
| DirectlyOver |
Lekéri azt az elemet, amellyel az érintéses kapcsolati pont közvetlenül átkerül. |
| Dispatcher |
Lekérdezi, Dispatcher hogy ez a társítva van-e DispatcherObject . (Öröklődés forrása DispatcherObject) |
| Id |
Lekéri az operációs rendszer által biztosított egyedi azonosítót TouchDevice. |
| IsActive |
Olyan értéket kap, amely jelzi, hogy az eszköz aktív-e. |
| Target |
Lekéri a bemenetet fogadó elemet a TouchDevice. |
Metódusok
| Name | Description |
|---|---|
| Activate() |
Hozzáadja a TouchDevice bemeneti üzenetkezelő rendszerhez. |
| Capture(IInputElement, CaptureMode) |
A megadott elem érintését rögzíti a megadott CaptureModeelem használatával. |
| Capture(IInputElement) |
Rögzíti a megadott elem érintését a rögzítési Element mód használatával. |
| CheckAccess() |
Meghatározza, hogy a hívó szál hozzáfér-e ehhez DispatcherObject. (Öröklődés forrása DispatcherObject) |
| Deactivate() |
Eltávolítja a TouchDevice bemeneti üzenetkezelő rendszerből. |
| 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) |
| GetIntermediateTouchPoints(IInputElement) |
Ha egy származtatott osztályban felül van bírálva, a legutóbbi és az előző érintéses események között összegyűjtött összes érintési pontot visszaadja. |
| GetTouchPoint(IInputElement) |
Az érintőeszköz aktuális pozícióját adja vissza 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) |
| OnCapture(IInputElement, CaptureMode) |
Egy elem érintésének rögzítésekor hívható meg. |
| OnManipulationEnded(Boolean) |
Akkor hívják, amikor egy manipuláció véget ért. |
| OnManipulationStarted() |
A manipuláció indításakor hívjuk. |
| ReportDown() |
Azt jelenti, hogy egy érintés egy elemre van nyomva. |
| ReportMove() |
Azt jelenti, hogy egy érintés egy elemen halad át. |
| ReportUp() |
Azt jelenti, hogy egy érintést emeltek ki egy elemből. |
| SetActiveSource(PresentationSource) |
Beállítja az PresentationSource eszközhöz tartozó jelentési bemenetet. |
| Synchronize() |
Kényszeríti a TouchDevice felhasználói felület szinkronizálását az alapul szolgáló érintőpontokkal. |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |
| VerifyAccess() |
Kényszeríti, hogy a hívószál hozzáférhessen ehhez.DispatcherObject (Öröklődés forrása DispatcherObject) |
esemény
| Name | Description |
|---|---|
| Activated |
Akkor fordul elő, ha a TouchDevice rendszer hozzáadja a bemeneti üzenetküldő rendszerhez. |
| Deactivated |
Akkor fordul elő, ha a TouchDevice rendszer eltávolítja a bemeneti üzenetkezelő rendszerből. |
| Updated |
Érintéses üzenet küldésekor fordul elő. |
Explicit interfész-implementációk
| Name | Description |
|---|---|
| IManipulator.GetPosition(IInputElement) |
Az objektum pozícióját IManipulator adja vissza. |
| IManipulator.Id |
Lekéri az TouchDevice operációs rendszer által megadott egyedi azonosítót. |
| IManipulator.ManipulationEnded(Boolean) |
Akkor fordul elő, ha egy manipuláció véget ért. |