WPF windows формирует события клавиатуры хоста - PullRequest
3 голосов
/ 25 августа 2010

Это, вероятно, простой вопрос, но я не смог найти быстрый ответ.

У меня есть WPF приложение, которое имеет Windows Forms Control хостинг компонента GeckoFX (на самом деле не имеет значения).

Что я хочу сделать, это перехватить события нажатия клавиш внутри элемента управления Windows Forms и получить фокус элемента управления WPF для некоторой конкретной комбинации клавиш.А что, если я хочу захватывать события из всего окна приложения WPF (даже внутри элемента управления Windows Forms)?Я попытался обработать событие KeyDown и PreviewKeyDown, но безрезультатно.

Что я хочу знать, так это то, возможно ли это и как это следует сделать.Я могу опубликовать код, если требуется.

1 Ответ

1 голос
/ 10 ноября 2010

KeyDown даже в форме должен работать для не специальных клавиш (например, клавиш со стрелками).Используйте PreviewKeyDown, чтобы захватить их, или используйте это решение .

Специально для GeckoWebBrowser мне пришлось использовать PreviewKeyDown.Также я добавил строку, чтобы она не ломалась в режиме конструктора:

private void webBrowser1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) {
  if (DesignMode) return;
  if (!e.IsInputKey && e.Control && e.KeyCode == Keys.S) {
    DoStuff();
    return;
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...