如何解释GestureRecognizer结果排序顺序?

时间:2010-03-17 09:20:06

标签: c# wpf gesture-recognition

.NET中GestureRecognizer类的documentation表明,Recognize方法返回的结果的排序顺序与置信度有多大有关。

但是,当我创建自己的示例(在WPF,.NET 3.5sp1中)创建识别器时,我没有看到这种行为。为了记录,我将识别器设置为识别所有可能的手势(ApplicationGesture.AllGestures)。

我的代码以MouseDown开头,然后记录MouseMove上的所有点,直到它收到MouseUp事件,然后调用所有这些点生成的stroke上的recognizer.Recognize()(通常在100点范围内或左右)。

我经常得到的是这样排序的4+次点击(报告括号中的置信度):

  1. NoGesture(强)
  2. ArrowLeft(中级)
  3. Square(Strong)
  4. ChevronDown(强)
  5. 这是一个错误吗?我应该只注意数组中的第一项吗?

1 个答案:

答案 0 :(得分:2)

我使用此方法的经验是,结果集中的项目顺序至少有些随意。我通过自信(降序)完成排序,然后是可能的想法(基于上下文)以及给定手势对应用程序状态的变化程度。

例如:如果我知道该圈子是“选择此项目”的手势而Square是“重建此项目的缓存数据,这可能需要5分钟,因为我们开始使用多个外部服务”(显然是一个糟糕的选择手势,鉴于相似性),如果两者都以相同的信心回归,我宁愿选择Circle。有时我甚至会对较高的信心(例如,在一个级别内)采取较低的信心。

这确实需要您的应用程序具有强烈的上下文感,但我发现确保您没有获得两个“强大”的信心并且完成那些需要更多工作才能撤消的信心是很有价值的。关于这些手势界面总是如此,我们永远不会百分之百地做正确的事情,所以如果我们错了就要做到最小的伤害是要记住的。