Silverlight 如何在按住另一个手指时记录触摸

Silverlight 如何在按住另一个手指时记录触摸,silverlight,windows-phone-7,Silverlight,Windows Phone 7,在WP7设备上,我有一个画布。当用户触摸画布上的任何位置时,图像将显示在该位置 我想添加一个功能,如果用户用一根手指触摸并握住屏幕,然后用另一根手指触摸另一个地方的屏幕,也会显示图像。因此,基本上我希望能够以最简单的方式捕捉和响应第二次触摸。有什么想法吗?你看过手势服务了吗?Pinch*事件允许您同时处理两次触摸 请参阅。您需要的只是位于Microsoft.Phone.Controls命名空间中的GestureListener,它可以处理一些手势,如 轻弹 拧 拖曳 刷卡 等 你可以这样使用它

在WP7设备上,我有一个画布。当用户触摸画布上的任何位置时,图像将显示在该位置


我想添加一个功能,如果用户用一根手指触摸并握住屏幕,然后用另一根手指触摸另一个地方的屏幕,也会显示图像。因此,基本上我希望能够以最简单的方式捕捉和响应第二次触摸。有什么想法吗?

你看过手势服务了吗?Pinch*事件允许您同时处理两次触摸


请参阅。

您需要的只是位于Microsoft.Phone.Controls命名空间中的GestureListener,它可以处理一些手势,如

轻弹 拧 拖曳 刷卡 等 你可以这样使用它

var gestureListener = GestureService.GetGestureListener(myCanvas);

//registering the Events
gestureListener.PinchStarted += new EventHandler<PinchStartedGestureEventArgs>(PinchStartedHandler);
gestureListener.PinchDelta += new EventHandler<PinchGestureEventArgs>(PinchDeltaHandler);
gestureListener.PinchCompleted += new EventHandler<PinchGestureEventArgs>(PinchCompletedHandler);

使用合适的Hanler方法进行旋转和缩放变换。

由于您显然是在Silverlight中,因此本文将向您展示如何为自己实现多点触摸-

登记触摸

 Touch.FrameReported += new TouchFrameEventHandler(Touch_FrameReported);
然后处理这些接触:

 void Touch_FrameReported(object sender, TouchFrameEventArgs e)
 {
        // if there are more than one finger on screen
        if (e.GetTouchPoints(myCanvas).Count == 2)
        {
            TouchPointCollection tpc = e.GetTouchPoints(myCanvas);
            // use tpc[0].Position
            // use tpc[1].Position
        }
 }

可选地,如果您想使用准备好的手势,那么考虑使用最新的Silverlight工具包——请参阅此博客帖子以获取信息——

我得到了Wi7电话,N只能处理1个手指非多点触摸,如果我用第二个手指触摸,光标就会移到两个手指的中间。哈哈,这不是iPhone。我想他们必须把多点触摸作为基本规范的一部分来处理。地雷处理捏等没有问题的人,每个WP7支持至少四个多点触摸,这是事实!在XNA中,您可以访问所有四个。在silverlight中,您被限制为2个同时的。我假设silverlight。xna的解决方案是不同的,它完全满足了我的需求。我在画布上进行了鼠标左键按下事件,然后完成了第二次触摸。谢谢盖伊教授,我不能把你的答案也标记为正确,因为它是正确的。谢谢