#734 – 在触摸事件中识别不同的手指(Recognizing Different Fingers in Touch Event Handlers)

翻译 2017年06月23日 15:41:17

原文地址:https://wpf.2000things.com/2013/01/15/734-recognizing-different-fingers-in-touch-event-handlers/

我们在WPF中处理低级别的触摸事件的时候,用户可能会使用不止一根手指进行触摸操作,而你想跟踪用户的某跟手指的触摸操作,你可以使用TouchEventArgs.TouchDevice.Id 属性。从手指按下到离开屏幕,每根手指的操作都对应着一个ID。

下面是一个例子:

private const double CircleWidth = 10;
private Dictionary<int, Point> LastPositionDict;
 
private void Canvas_TouchDown(object sender, TouchEventArgs e)
{
    try
    {
        TouchPoint tp = e.GetTouchPoint(null);
 
        AddEllipseAt(canvMain, tp.Position, Brushes.Red);
 
        LastPositionDict.Add(e.TouchDevice.Id, tp.Position);
    }
    catch (Exception xx)
    {
        MessageBox.Show(xx.ToString());
    }
}
 
private void Canvas_TouchMove(object sender, TouchEventArgs e)
{
    TouchPoint tp = e.GetTouchPoint(null);
 
    AddLineFromTo(canvMain, LastPositionDict[e.TouchDevice.Id], tp.Position, Brushes.Black);
    LastPositionDict[e.TouchDevice.Id] = tp.Position;
}
 
private void Canvas_TouchUp(object sender, TouchEventArgs e)
{
    TouchPoint tp = e.GetTouchPoint(null);
 
    AddEllipseAt(canvMain, tp.Position, Brushes.Blue);
    LastPositionDict.Remove(e.TouchDevice.Id);
}

上面的代码中,我们为一个Canvas注册了触摸处理事件,画出手指移动的轨迹,并在手指按下和离开屏幕的时候添加开始和结束点。

我们同时在屏幕上放下两个手指并移动,通过ID来分别每次移动是哪个手指。下图是显示结果:

734-001

#741 – 使用触摸事件移动控件(Using Touch Manipulation Events to Translate an Element)

原文地址:https://wpf.2000things.com/2013/01/24/741-using-touch-manipulation-events-to-translate-an-eleme...

iOS个人整理08-touch触摸事件和手势识别器

一、touch触摸事件 在给定的触摸阶段,如果发生触摸事件,应用程序就会发送下列消息 //触屏开始 -(void)touchesBegan:(NSSet *)touches withEvent:(U...

MVVM之旅-给任意的事件绑定命令(Adventures in MVVM – Binding Commands to ANY Event)

原文标题:Adventures in MVVM – Binding Commands to ANY Event 当我实现MVVM模式时,令我最为头疼一件事是需要给事件绑定命令。当我使用Prism...

触摸事件 Touch MotionEvent ACTION

触摸事件 Touch MotionEvent ACTION MotionEvent简介 当用户触摸屏幕时,将创建一个MontionEvent对象,Motio...

starling教程-触摸事件(Touch Events)

在前面提到过,Starling是Sparrow的姊妹篇,正因为这样,Starling里的touch事件的机制其实是为移动设备的触摸交互设计的,所以当你使用它进行使用鼠标交互的桌面应用开发时,第一眼会感...

jQueryMobile的(十八) 触摸事件(touch)

在 jQuery Mobile 中有一些触摸事件是可定制的。然而,这些事件仅当与支持触摸功能的设备进行交互的用户访问您的 jQuery Mobile 网站时才可用。当这些事件可用时,您可以触发任何自定...

触摸事件的传递机制和与Touch相结合的实践学习

触摸事件的传递机制和与Touch相结合的实践学习 学习目标: 很长一段时间,一致对触摸事件似懂非懂,具体的事件传递机制都很清楚,但是对其应用实践却知道的不是很多,所以,今天特别地对触摸事件进行有...

html5移动端触摸事件touch

移动端主要的触摸事件有三个: touchstart事件:当手指触摸屏幕时候触发,即使已经有一个手指放在屏幕上也会触发。 touchmove事件:当手指在屏幕上滑动的时候连续地触发。在这个事件发生期间,...

HTML5触摸事件touch监听

--> --> * { margin: 0px; padding: 0px; } ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:#734 – 在触摸事件中识别不同的手指(Recognizing Different Fingers in Touch Event Handlers)
举报原因:
原因补充:

(最多只允许输入30个字)