WPF中的键盘快捷键我知道使用_而不是&,但我正在查看所有Ctrl+类型的快捷方式。Ctrl+ Z用于撤消,Ctrl+ S用于保存等。在WPF应用程序中实现这些是否有“标准”方法?或者是自己滚动的情况并将它们连接到任何命令/控制?
3 回答
杨魅力
TA贡献1811条经验 获得超6个赞
我理解标准方法是创建命令,然后将快捷键作为InputGestures添加到它们。
这使得快捷键即使没有连接到任何控件也可以工作。由于菜单项了解键盘手势,如果您将该命令挂钩到菜单项,它们将自动在菜单项文本中显示您的快捷键。
创建静态属性来保存命令(最好是作为为命令创建的静态类中的属性 - 但是对于一个简单的例子,只需在window.cs中使用静态属性):
public static RoutedCommand MyCommand = new RoutedCommand();
添加应该调用方法的快捷键:
MyCommand.InputGestures.Add(new KeyGesture(Key.S, ModifierKeys.Control));
创建一个指向您的方法以在执行时调用的命令绑定。将它们放在UI元素的命令绑定中(例如,窗口)和方法:
<Window.CommandBindings> <CommandBinding Command="{x:Static local:MyWindow.MyCommand}" Executed="MyCommandExecuted"/></Window.CommandBindings>private void MyCommandExecuted(object sender, ExecutedRoutedEventArgs e) { ... }
慕森卡
TA贡献1806条经验 获得超8个赞
我发现这正是我在寻找与WPF中的键绑定相关的内容:
<Window.InputBindings> <KeyBinding Modifiers="Control" Key="N" Command="{Binding CreateCustomerCommand}" /></Window.InputBindings>
请参阅博客文章MVVM CommandReference和KeyBinding
红颜莎娜
TA贡献1842条经验 获得超12个赞
试试这个代码......
首先创建一个RoutedComand对象
RoutedCommand newCmd = new RoutedCommand(); newCmd.InputGestures.Add(new KeyGesture(Key.N, ModifierKeys.Control)); CommandBindings.Add(new CommandBinding(newCmd, btnNew_Click));
添加回答
举报
0/150
提交
取消