Если вам нужно только захватывать щелчки мышью в любом месте заданного Window
, просто подписка на MouseDown
или PreviewMouseDown
на уровне окна делает свое дело.
Если вы действительно хотите, чтобы он был глобальным для приложения (а не только для окна), вам следует подписаться на событие InputManager.PreProcessInput
или InputManager.PostProcessInput
и следить за событиями мыши:
public MyClickManagerClass()
{
InputManager.Current.PreProcessInput += (sender, e) =>
{
if(e.StagingItem.Input is MouseButtonEventArgs)
GlobalClickEventHandler(sender,
(MouseButtonEventArgs)e.StagingItem.Input);
}
}
Обратите внимание, что "отправитель" всегда будет InputManager, но вы можете сопоставить координаты с другими элементами управления с помощью MouseEventArgs.GetPosition(visual)
.