我如何实现wpf键绑定

时间:2012-06-04 18:25:24

标签: wpf key-bindings routedevent

我希望能够允许用户在运行时更改热键。

有没有人有一个具体的例子来说明如何在codebehind c#中绑定一个键来完成这个?

我假设我必须使用RoutedCommand进行键绑定。假设我想用热键在UI上按下按钮。

例如......让用户按F5点击应用程序上的btnGo。

1 个答案:

答案 0 :(得分:0)

命令的工作方式与您的想法略有不同。当您按下按钮时,它不会触发您的应用程序中的按钮单击。相反,你定义一个命令(在这种情况下,你可以有一个名为“Go”的命令),你可以将这个命令分配给你的应用程序中的各种元素(菜单项,按钮等)所有这些项目都会激活命令和该命令具有执行代码的“已执行”功能。

如果将CommandBindings添加到主窗口,则可以使用热键全局触发这些命令。您可以通过以下代码轻松地将命令绑定放在XAML中:

<Window.CommandBindings>
    <CommandBinding Command="local:MyCommands.Go" CanExecute="GoCanExecute" Executed="Go" />
</Window.CommandBindings>

要创建自己的命令,可以在代码中创建“RoutedUICommand”并设置默认成员(默认名称,默认键绑定等)。你很可能想把它变成一个类的静态属性。

然后,如果要更改或添加此命令的键绑定,您只需访问此静态属性并修改InputGestures集合。您可以清除它,添加新的键绑定,并根据需要进行更改。