我希望能够允许用户在运行时更改热键。
有没有人有一个具体的例子来说明如何在codebehind c#中绑定一个键来完成这个?
我假设我必须使用RoutedCommand进行键绑定。假设我想用热键在UI上按下按钮。
例如......让用户按F5点击应用程序上的btnGo。
答案 0 :(得分:0)
命令的工作方式与您的想法略有不同。当您按下按钮时,它不会触发您的应用程序中的按钮单击。相反,你定义一个命令(在这种情况下,你可以有一个名为“Go”的命令),你可以将这个命令分配给你的应用程序中的各种元素(菜单项,按钮等)所有这些项目都会激活命令和该命令具有执行代码的“已执行”功能。
如果将CommandBindings添加到主窗口,则可以使用热键全局触发这些命令。您可以通过以下代码轻松地将命令绑定放在XAML中:
<Window.CommandBindings>
<CommandBinding Command="local:MyCommands.Go" CanExecute="GoCanExecute" Executed="Go" />
</Window.CommandBindings>
要创建自己的命令,可以在代码中创建“RoutedUICommand”并设置默认成员(默认名称,默认键绑定等)。你很可能想把它变成一个类的静态属性。
然后,如果要更改或添加此命令的键绑定,您只需访问此静态属性并修改InputGestures集合。您可以清除它,添加新的键绑定,并根据需要进行更改。