1

.NET中的类文档GestureRecognizer指出,Recognize 方法返回的结果的排序顺序与置信度的强弱有关。

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

我的代码从 MouseDown 开始,然后记录 MouseMove 上的所有点,直到它接收到 MouseUp 事件,然后在从所有这些点(通常在 100 点左右的范围内)生成的笔划上调用识别器.Recognize()。

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

  1. 无手势(强)
  2. 左箭头(中级)
  3. 方形(强)
  4. ChevronDown(强)

这是一个错误吗?我应该只关注数组中的第一项吗?

4

1 回答 1

2

我的经验是结果集中项目的顺序至少有些随意。我最终按置信度(降序)排序,然后是它是所需手势的可能性(基于上下文)以及给定手势对应用程序状态造成多少变化的感觉。

例如:如果我知道 circle 是“选择此项目”手势,Square 是“重建此项目的缓存数据,这可能需要 5 分钟,因为我们转到多个外部服务”(显然手势选择不佳,考虑到相似性),如果两人都以同样的信心回来,我更愿意选择 Circle。有时我什至会以较低的信心比较高的信心(例如,在一个级别内)。

这确实需要在您的应用程序中具有强烈的上下文意识,但我发现确保您没有获得两个“强大”的信心并最终做一个需要更多工作才能撤消的信心是很有价值的。这些手势界面始终正确的一件事是,我们永远不会在 100% 的时间里做正确的事情,因此,如果我们做错了,请牢记于心。

于 2010-03-17T12:24:21.853 回答