WPF中的ProcessCmdKey模拟

时间:2011-05-25 15:04:53

标签: wpf keyboard-shortcuts hotkeys

我是WPF和WinForms的新手,可以将热键添加到我通常使用的ProcessCmdKey表单中,该表单可以轻松覆盖(添加)与键相关的功能(类似于描述的方式here )。有没有一种简单的方法来在WPF中分配热键?我正在使用带有键的命令,但有时候它不起作用(我认为窗口上的其他一些控件会响应那些手势并完成它们的工作,因此我的命令无法响应预定义的键手势)。

1 个答案:

答案 0 :(得分:5)

InputBindings的作用范围是它们所分配的控件,如果在KeyBinding中分配Window.InputBindings,它们将在整个窗口中被触发,除非相同的手势在本地被覆盖在树的某处定义。

  

例如:

<UserControl.InputBindings>
    <KeyBinding Gesture="CTRL+SHIFT+N"
                Command="{Binding BtnNewChild_Command}"
                CommandParameter="{Binding ElementName=view}" />
</UserControl.InputBindings>
     

不起作用,它不能将视图元素作为参数传递,因为在该UserControl中有一个名为“view”的控件。 wpf是否有一些“常见的”热键分配方案?

这里的问题只是作用域,子控件可以访问树上声明更高的东西,但不能反过来。您可以重构此操作以在UserControl.Resources中创建您的视图作为资源,然后您可以在CommandParameter中以及在UserControl中使用它时引用它。