在我正在开发的Silverlight应用程序中,我需要跟踪鼠标的移动。我的问题是使用MouseMove事件,如果用户足够快地移动鼠标,我没有连续的点集(如果我在列表中添加每个点我可以有(10,10)en然后(20,20) )...)
我希望鼠标在移动过程中有所有点。 你有什么想法吗?
答案 0 :(得分:1)
这无法有效运作。 silverlight的mousemove事件在OS上等待发送带有坐标的信号。如果移动速度非常快,操作系统不会为其移动的每个点触发其事件。大多数操作系统执行无限循环,检查机器状态,如果这些循环很快,那么它可能会为每个点拾取鼠标移动。如果鼠标在0.001ms内从(1,1)移动到(20,20),OS可能会在(10,10)处调用该事件,或者如果循环没有及时命中它,它将根本不会。
一种可以加快速度的方法是减少鼠标移动中的代码或使它们异步。
另一种方法是数学方法,根据您已经收集的内容计算路径。