Хорошо, я не уверен, что понимаю, как это должно работать, но в моем приложении я связал жест клавиши (Ctrl + K) с RoutedCommand.Независимо от того, где я сосредоточен в своем приложении, комбинация клавиш работает, за исключением случаев, когда я использую ее внутри WindowsFormsHost, содержащего элемент управления веб-браузера.Я попытался захватить событие PreviewKeyDown для элемента управления веб-браузера и установить для IsInputKey значение false.Теоретически, это должно привести к тому, что хост будет считать жест ключа необработанным и отправить его вверх, но этого не произойдет.
ОБНОВЛЕНИЕ:
Если я переопределяю bool элемента управления IsInputKey (ключиkeyData) и возвращает false, все работает, и команда выполняется как надо.
Может быть, что-то не так в том, как я обработал PreviewKeyDown?
private void browser_PreviewKeyDown (object sender, PreviewKeyDownEventArgs e)
{
e.IsInputKey = false;
}
Я ожидал, что это позволит мнезахватить любую комбинацию клавиш из моего главного окна.Я предпочел бы исправить это с помощью обработки событий, чем расширять элемент управления ...