WPF窗体宿主键盘事件

3
这可能是一个简单的问题,但我一直无法找到快速的答案。
我有一个WPF应用程序,其中包含一个Windows Forms Control,它托管了一个GeckoFX组件(并不重要)。
我想做的是在Windows Forms Control内捕获按键事件,并为某些特定的键组合抓住WPF控件的焦点。 如果我想从整个WPF应用程序窗口(甚至是Windows Forms Control内部)捕获事件怎么办? 我尝试处理KeyDown事件和PreviewKeyDown事件,但都没有成功。
我想知道的是这是否可能以及应该如何完成。如果需要,我可以发布一些代码。
1个回答

1

在窗体上,KeyDown事件应该适用于非特殊键(如箭头键)。使用PreviewKeyDown来捕获这些键,或者使用this solution

对于GeckoWebBrowser,我必须使用PreviewKeyDown。此外,我添加了一行代码,以便在设计模式下不会出错:

private void webBrowser1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) {
  if (DesignMode) return;
  if (!e.IsInputKey && e.Control && e.KeyCode == Keys.S) {
    DoStuff();
    return;
  }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接