如何在WPF / C#中检测鼠标是否在我的窗口范围内移动?

时间:2011-08-01 20:53:41

标签: c# wpf mouseevent

我有一个小视频应用程序,我想提供类似vlc的功能。通过这个,我的意思是有一个元素消失,并出现在鼠标移动或鼠标不移动。我有一个如何做到这一点的粗略概念,但我不知道我如何检测鼠标是否移动。我想过使用GetPosition函数,但这只会给我鼠标的位置,并且不会让我知道光标是否移动。我想在鼠标停止移动后使用计时器倒计时2-3秒,然后淡出控件或者让它崩溃而不再赘述。我无法每毫秒检查位置变量的值。还有其他方法可以做到这一点吗?

2 个答案:

答案 0 :(得分:3)

您可以使用挂钩功能,以便在鼠标移动时通知,我使用this免费的开源库。

如何使用它:

using Gma.UserActivityMonitor.GlobalEventProvider;

GlobalEventProvider _globalEventProvider1 
                                 = new Gma.UserActivityMonitor.GlobalEventProvider();

this.globalEventProvider1.MouseMove += HookMouseMove;//to listen to mouse move

答案 1 :(得分:0)

捕获鼠标。如果用户实际点击其他任何位置,则释放捕获。然后,您可以使用标准的WPF鼠标移动事件。

myElement.MouseMove += (my MouseMove handler)
Mouse.Capture(myElement);