Вызвать метод, когда конкретная комбинация клавиш нажата в любом месте приложения, если приложение в данный момент находится в окне - PullRequest
1 голос
/ 30 сентября 2010

Моя цель - разрешить пользователям моего приложения вызывать то, что я называю моей консолью отладки, нажав CTRL + F11 на их клавиатуре.

Проще говоря, мне нужно вызвать метод ToggleDebug();, который включит мой код трассировки отладки и отобразит окно. Я бы хотел, чтобы мое приложение делало это в любой момент, когда нажата комбинация клавиш CTRL + F11, независимо от того, где пользователь в данный момент фокусирует курсор, пока мое приложение находится в текущем окне.

Мое приложение развертывается с помощью Click Once - так что это среда с частичным доверием.

В старом приложении VB6 я использовал цикл wend с вызовом DoEvents() и вызовом API Windows ... само собой разумеется, я надеюсь, что сейчас есть лучший способ.

1 Ответ

3 голосов
/ 30 сентября 2010

Вы можете обработать событие PreviewKeyDown вашего окна.

public MainWindow()
{
    InitializeComponent();
    this.PreviewKeyDown += new KeyEventHandler(MainWindow_PreviewKeyDown);
}

void MainWindow_PreviewKeyDown(object sender, KeyEventArgs e)
{
    if ((e.Key == Key.F11) && (Keyboard.Modifiers == ModifierKeys.Control))
    { 

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