C# 如何解释手势识别器结果排序顺序?
NET中的C# 如何解释手势识别器结果排序顺序?,c#,wpf,gesture-recognition,C#,Wpf,Gesture Recognition,NET中的GestureRecognizer类的声明指出,识别方法返回的结果的排序顺序与置信度有多强有关 但是,当我创建自己的示例(在WPF、.NET 3.5sp1中)来创建识别器时,我没有看到这种行为。作为记录,我将识别器设置为识别所有可能的手势() 我的代码从MouseDown开始,然后在MouseMove上记录所有点,直到它接收到MouseUp事件,该事件然后在由所有这些点(通常在100点左右的范围内)生成的上调用recognizer.Recognize() 我经常得到的是4个以上的点击,
GestureRecognizer
类的声明指出,识别方法返回的结果的排序顺序与置信度有多强有关
但是,当我创建自己的示例(在WPF、.NET 3.5sp1中)来创建识别器时,我没有看到这种行为。作为记录,我将识别器设置为识别所有可能的手势()
我的代码从MouseDown开始,然后在MouseMove上记录所有点,直到它接收到MouseUp事件,该事件然后在由所有这些点(通常在100点左右的范围内)生成的上调用recognizer.Recognize()
我经常得到的是4个以上的点击,排序如下(括号中显示的置信度):
这是虫子吗?我应该只注意数组中的第一项吗?我的经验是,结果集中的项的顺序至少有点随意。最后,我按照置信度(降序)进行排序,然后根据上下文判断这是一个期望的手势,并判断给定手势对应用程序状态的改变程度 例如:如果我知道circle是一个“选择此项目”的手势,而Square是一个“重建此项目的缓存数据,这可能需要5分钟,因为我们要使用多个外部服务”(考虑到相似性,显然是一个糟糕的手势选择),我更愿意选择circle,如果两者都以同样的信心返回。有时我甚至会采取较低的信心,而不是较高的信心(例如,在一个级别内) 这确实需要在应用程序中具有强烈的上下文意识,但我发现,确保您没有获得两个“强烈”的信任并最终完成一个需要更多工作才能撤销的信任是很有价值的。关于这些手势界面,有一点始终是正确的,那就是我们永远不会百分之百地做正确的事情,所以要记住,如果我们做错了,就尽量减少伤害