【发布时间】:2011-04-05 16:18:27
【问题描述】:
好的,我不确定我是否理解这应该如何工作,但在我的应用程序中,我已将按键手势 (Ctrl+K) 绑定到 RoutedCommand。无论我在我的应用程序中关注的哪个位置,组合键都有效,除非我在包含 Web 浏览器控件的 WindowsFormsHost 中使用它。我尝试为 Web 浏览器控件捕获 PreviewKeyDown 事件并将 IsInputKey 设置为 false。从理论上讲,这应该会导致 Host 认为未处理的键手势并将其向上发送,但这不会发生。
更新:
如果我覆盖控件的 bool IsInputKey (Keys keyData) 并返回 false,它会起作用并且命令会按应有的方式执行。
也许我处理 PreviewKeyDown 的方式有问题?
private void browser_PreviewKeyDown (object sender, PreviewKeyDownEventArgs e)
{
e.IsInputKey = false;
}
我希望这可以让我从主窗口捕获任何组合键。我宁愿通过事件处理来解决这个问题,而不是扩展控件......
【问题讨论】:
标签: wpf winforms winforms-interop