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