Отслеживание движений мыши WPF среди множества элементов управления WindowsFormsHost - PullRequest
0 голосов
/ 12 октября 2010

У меня есть приложение WPF с несколькими элементами управления WindowsFormsHost.Я пытаюсь отследить положение мыши внутри моего приложения, когда оно развернуто в полноэкранном режиме.Если пользователь помещает мышь рядом с верхним экраном, я хотел бы отобразить окно с дополнительными меню.

Я могу использовать:

  • Window.PreviewMouseMove
  • InputManager.PreProcessInput или даже
  • HwndSource.FromHwnd (WindowInteropHelper (mainWindow) .Handle) .AddHook (...)

для получения событий перемещения, пока мышь не реагирует.переместить WindowsFormsHost (если пользователь делает это, я не получаю событие).Я думаю, что основная проблема заключается в том, что WPF использует отдельный HWND для каждого WindowsFormsHost.

Есть ли хороший способ отслеживать движения мыши по моему приложению без необходимости вручную находить каждый WindowsFormsHost и подписываться на его события перемещения мыши?Я также хотел бы избежать глобального слушателя мыши Windows, если это возможно.

1 Ответ

0 голосов
/ 12 октября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...