好的,我不确定这应该如何工作,但在我的应用程序中,我将一个键盘手势(Ctrl + K)绑定到了一个路由命令。无论我在应用程序中的哪个位置进行聚焦,该键盘组合都有效,除非我在一个包含 Web 浏览器控件的 WindowsFormsHost 中使用它。我尝试捕获 Web 浏览器控件的 PreviewKeyDown 事件并将 IsInputKey 设置为 false。理论上,这应该使 Host 认为该键盘手势未被处理并向上发送,但事实并非如此。
更新:
如果我重写控件的 bool IsInputKey(Keys keyData) 并返回 false,则它可以正常工作,并执行命令。
也许我在处理 PreviewKeyDown 方面做错了什么?
更新:
如果我重写控件的 bool IsInputKey(Keys keyData) 并返回 false,则它可以正常工作,并执行命令。
也许我在处理 PreviewKeyDown 方面做错了什么?
private void browser_PreviewKeyDown (object sender, PreviewKeyDownEventArgs e)
{
e.IsInputKey = false;
}
我希望这可以让我从主窗口捕获任何键盘组合。我宁愿通过事件处理来修复这个问题,而不是扩展控件...