【发布时间】:2017-08-06 18:51:35
【问题描述】:
我们有一个 WPF 组件(用户控件),它通过 ElementHost 托管在 Win Form 中。 WPF组件通过
定义为ElementHost的ChildElementHostControl.Child = wpfFrame
我们希望将某些键绑定从 Win 表单传递到 WPF 表单。我们是通过 KeyBinding() 来实现的。然后我们将键绑定分配给 WPFFrame.InputBindings.add(curBinding);
虽然我没有测试所有的组合键,但大多数组合键都很好用。但 Ctrl+B、Shift+P 等似乎一切正常。
但是我尝试了 Shift+(左箭头键),它不起作用。有趣的是,当我在独立的 WPF 应用程序中尝试它时,它会按预期完成工作。
我确保数据流过完全相同的代码,但为什么 Shift+P 有效,而 Shift+
我怀疑这是 WPF 和 Win 表单之间的集成问题,因为 Shift+
任何意见表示赞赏。
【问题讨论】:
-
这可能是一个焦点问题。如果键盘焦点不在 WPF 元素上,那么它可能不会接收到键事件。您可能需要使用 WPF 元素上的
RaiseEvent转发关键事件:stackoverflow.com/a/1646568/476048
标签: c# wpf winforms integration key-bindings