基本上,我有一个8000px到8000px的应用程序。我们可以放大以查看特定部分,例如收音机,或者我们可以缩小以查看所有内容。
汽车的每个部分都是一个控件,我们可以用手指操作,双触摸或多点触控显示器。
我的问题是:对于操纵控件,例如音量按钮,用户需要像现实生活中一样移动鼠标,因此使用圆形运动。 使用鼠标,一切都很完美,它可以毫不拖延地立即响应。我使用OnMouseLeftButtonDown,OnMouseMove等。 通过触摸,计算机似乎很难获得触摸位置并且存在巨大的延迟,尤其是当用户同时用两个手指移动2个不同的按钮时。我使用OnTouchDown,OnTouchMove等......
鼠标和触摸之间的唯一区别是当我们需要获取位置时,我使用鼠标:(e是MouseButtonEventArgs)
Point currentPosition = e.GetPosition(this);
使用Touch我使用:(e是TouchEventArgs)
Point currentPosition = e.GetTouchPoint(this).Position;
此后的一切都是一样的。
我不知道是不是因为我在我的应用程序中有太多的控制权(超过5000我们可以操纵,但是当我们只放大2控制它是同样的事情)或者因为它真的很难计算机从触摸事件中获得位置....
有人可以帮我吗?我需要找到一个消除滞后的解决方案。
我使用Visual Studio 2010,Blend 4,.NET 4.0 Windows 7 64位 7 Gb RAM 至强2.13 Ghz,2核,8线程 屏幕:ELO技术,在NEC 2490WUXi2屏幕中
答案 0 :(得分:3)
答案 1 :(得分:1)
很难说为什么会出现这样的问题 - 可能是OnTouchMove比MouseMove更频繁地被触发,你应该创建一些额外的处理来平滑触摸位置数据。 我试着评论下的所有代码 Point currentPosition = e.GetTouchPoint(this).Position;
并查看表现。
另一种方法是计算触发OnTouchMove的数量。
答案 2 :(得分:1)
问题在于触摸设备,尝试另一个设备来查看滞后是否仍然存在。