WPF. Выгода последний щелчок окна где угодно

Есть ли так или иначе, что класс может поймать последний щелчок в приложении? Что-то как

public class MyClickManagerClass
{
    public MyClickManagerClass()
    {
        // subscribe to a global click event
    }

    private void GlobalClickEventHandler(object sender, EventArgs e)
    {
        // do something with the click here
    }
}

Спасибо за внимание!

6
задан Dave Clemmer 16 September 2011 в 17:42
поделиться

1 ответ

Если вы заботитесь только для захвата щелчков мыши в любом месте в указанном в окне , просто подписавшись на Mousedown или PreviewMousedown на уровне окна делает трюк.

Если вы действительно хотите, чтобы это было глобальным для приложения (а не только к окну), вы должны подписаться на IgrapeManager.PreprocessInput или IgrapeManager.postProcessInput событие Для событий мыши:

public MyClickManagerClass()
{
  InputManager.Current.PreProcessInput += (sender, e) =>
  {
    if(e.StagingItem.Input is MouseButtonEventArgs)
      GlobalClickEventHandler(sender,
        (MouseButtonEventArgs)e.StagingItem.Input);
  }
}

Обратите внимание, что «отправитель» всегда будет входнымmanager, но вы можете сопоставить координаты на другие элементы управления MouseEventargs.getPosition (Visual) .

13
ответ дан 8 December 2019 в 18:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: