我们有一个通过ElementHost托管在Win Form中的WPF组件(用户控件)。 WPF的组件通过在Win Form中托管WPF时的键绑定问题
ElementHostControl.Child = wpfFrame
定义为ElementHost的的孩子有,我们想从赢到表格WPF形式通过某些键绑定。我们通过KeyBinding()来做到这一点。然后我们将键绑定分配给 WPFFrame.InputBindings.add(curBinding);
尽管我没有测试所有这些组合,但它与大多数组合键一样。但Ctrl + B,Shift + P等似乎一切正常。
但我尝试Shift +(左箭头键),它不工作。有趣的是,当我在独立的WPF应用程序中尝试它时,它按预期做了这项工作。
我确保通过完全相同的代码的数据流,但为什么Shift + P的作品,而Shift + < - 不?现在我在WPF Commend中设置了一个断点并从Win Form运行它。我使用键绑定来触发另一个命令,然后使用Ctrl + < - 触发其实际“有时”工作的有问题的命令。如果我删除断点并按Ctrl + < - 那么它永远不会触发相关的命令。
我怀疑这是WPF和Win窗体之间的集成问题,因为Shift + < - 在WPF中工作。
任何输入赞赏。
这可能是一个焦点问题。如果键盘焦点不在WPF元素上,那么它可能不会收到关键事件。您可能需要使用WPF元素上的'RaiseEvent'来转发关键事件:http://stackoverflow.com/a/1646568/476048 –