2

我曾经使用过鼠标事件,使用 TouchFrameReported,我希望它是单点触控,但它支持多点触控,如何禁用多点触控,在报告的触摸帧中,或者有什么想法可以实现不支持多点触控..

void Touch_FrameReported(object sender, TouchFrameEventArgs e)
        {
            foreach (TouchPoint touchPoint in e.GetTouchPoints(this.mainGrid))
            {
                if (touchPoint.Action == TouchAction.Down)
                {
                    currentPoint.X = touchPoint.Position.X;
                    currentPoint.Y = touchPoint.Position.Y;
                    glowDot();
                }
                else if (touchPoint.Action == TouchAction.Up)
                {
                    circPathGlow.Visibility = Visibility.Collapsed;

                }
                else if (touchPoint.Action == TouchAction.Move)
                {

                }
            }
        }
4

2 回答 2

1

您可以找到更多信息:

http://social.msdn.microsoft.com/Forums/windowsapps/en-US/123e9381-fc0b-441e-a738-dcd35f526a6e/how-to-disable-multitouch

我不会尝试在这里摆弄触摸消息。如果目标是一次限制拖动到一个控件,则将其限制为控件。一个人动了就别动其他人。

在指针消息级别,您可以跟踪 PointerPressed 中的 PointerId 并忽略其他 PointerId,直到您获得 PointerReleased 或 PointerCaptureLost:

问题:您要禁用某些多手势还是全部?

于 2013-08-18T08:27:10.267 回答
0

阅读http://www.wintellect.com/blogs/jprosise/building-touch-interfaces-for-windows-phones-part-2后 ,我知道我使用的是 e.GetTouchPoints 而不是 e.GetPrimaryTouchPoint,
现在,我使用 e.GetPrimaryTouchPoint,它只捕获被触摸的第一个触摸点,
TouchPoint touchPoint = e.GetPrimaryTouchPoint(this.mainGrid); 和其余的代码,这解决了我的问题。

于 2013-08-18T11:11:53.037 回答