C# 以Win格式托管WPF时的关键绑定问题
我们有一个WPF组件(用户控件),它通过ElementHost以Win形式托管。WPF组件通过定义为ElementHost的子级 ElementHostControl.Child=wpfFrame 我们希望将某些键绑定从Win表单传递到WPF表单。我们是通过KeyBinding()实现的。然后我们将keybinding分配给 WPFFrame.InputBindings.add(限制绑定) 虽然我没有测试所有的组合键,但大多数组合键都可以使用。但Ctrl+B、Shift+P等操作似乎都可以正常工作 但我尝试Shift+(左箭头键),它不工作。有趣的是,当我在独立的WPF应用程序中尝试它时,它就像预期的那样工作C# 以Win格式托管WPF时的关键绑定问题,c#,wpf,winforms,integration,key-bindings,C#,Wpf,Winforms,Integration,Key Bindings,我们有一个WPF组件(用户控件),它通过ElementHost以Win形式托管。WPF组件通过定义为ElementHost的子级 ElementHostControl.Child=wpfFrame 我们希望将某些键绑定从Win表单传递到WPF表单。我们是通过KeyBinding()实现的。然后我们将keybinding分配给 WPFFrame.InputBindings.add(限制绑定) 虽然我没有测试所有的组合键,但大多数组合键都可以使用。但Ctrl+B、Shift+P等操作似乎都可以正常工
我确保数据流通过完全相同的代码,但为什么Shift+p工作而Shift+这确实是一个焦点问题。设置断点和此线: var v=键盘.FocusedElement 运行时显示焦点被各种元素窃取。我需要亲自挑选两个,然后设置 Focusable=“False”
在XAML中。问题解决了 这可能是一个焦点问题。如果键盘焦点不在WPF元素上,那么它可能不会接收按键事件。您可能需要使用WPF元素上的
RaiseEvent
转发密钥事件: