Как я могу определить, движется ли мышь как внутри, так и за пределами моего окна в WPF / C #? - PullRequest
4 голосов
/ 02 августа 2011

У меня есть небольшое видео приложение, которое я хотел бы предоставить vlc-подобной функциональности. Под этим я подразумеваю, что определенный элемент исчезает и появляется при движении мыши или при отсутствии мыши. У меня есть приблизительное представление о том, как это сделать, но я понятия не имею, как определить, движется ли мышь или нет. Я думал об использовании функции GetPosition, но это просто даст мне положение мыши и не даст мне знать, движется ли курсор или нет. Я хотел бы использовать таймер для обратного отсчета 2-3 секунды после того, как мышь перестала двигаться, а затем либо исчезнуть с пульта, либо просто свернуть его без лишних слов. Я не могу проверить значение переменной позиции каждую миллисекунду. Есть ли другой способ сделать это?

Ответы [ 2 ]

3 голосов
/ 02 августа 2011

Вы можете использовать функцию перехвата, так что вы будете уведомлены , когда мышь двигается, я использую эту бесплатную библиотеку с открытым исходным кодом.

Как это использовать:

using Gma.UserActivityMonitor.GlobalEventProvider;

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

this.globalEventProvider1.MouseMove += HookMouseMove;//to listen to mouse move
0 голосов
/ 02 августа 2011

Захват мыши. Отпустите захват, если пользователь фактически щелкнет где-либо еще. Затем вы можете использовать стандартное событие перемещения мыши WPF.

myElement.MouseMove += (my MouseMove handler)
Mouse.Capture(myElement);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...