【发布时间】:2014-04-11 09:06:33
【问题描述】:
我正在尝试通过连接到CrossSliding 事件来检测带有GestureRecognizer 的水平滑动手势。
_gr = new GestureRecognizer
{
GestureSettings = GestureSettings.ManipulationTranslateX |
GestureSettings.ManipulationTranslateY |
GestureSettings.CrossSlide
};
_gr.CrossSliding += OnSwipe;
_gr.ManipulationStarted += OnManipulationStarted;
_gr.ManipulationUpdated += OnManipulationUpdated;
_gr.ManipulationCompleted += OnManipulationCompleted;
_gr.CrossSlideHorizontally = true;
从上面的代码可以看出,不仅要检测滑动,还要检测拖动手势。
我的问题是我似乎无法自定义滑动手势。
我想自定义在手势被视为滑动之前用户必须拖动指针的最小速度和距离。在当前状态下,即使是最慢和最小的水平拖动动作也会触发CrossSliding 事件。
我看到了允许自定义手势的CrossSlideThresholds 类,但我看不出它如何用于配置滑动手势的速度和距离。
CrossSliding 事件是检测滑动的正确方法吗?如果是这样,我该如何配置速度和滑动距离?
如果没有,我如何检测滑动手势?
【问题讨论】:
-
您对滑动的理解是什么?我认为在 Windows 8 的情况下,它是用来选择列表项的,并且交叉滑动描述了这个手势垂直于
ScrollViewer的平移方向。这是您要检测的内容吗? -
不,不是这样,我的意思是快速的水平或垂直触摸点移动,就像您用来在设备上翻阅书籍或专辑封面的页面(希望有意义)。我重新阅读了文档并得出结论,没有内置的方法来检测滑动。我实现了自己的检测并将添加答案
标签: c# windows-runtime microsoft-metro windows-store-apps