WPF中的键盘快捷键

WPF中的键盘快捷键

我知道使用_而不是&,但我正在查看所有Ctrl+类型的快捷方式。

CtrlZ用于撤消,CtrlS用于保存等。

在WPF应用程序中实现这些是否有“标准”方法?或者是自己滚动的情况并将它们连接到任何命令/控制?


小怪兽爱吃肉
浏览 1107回答 3
3回答

杨魅力

我理解标准方法是创建命令,然后将快捷键作为InputGestures添加到它们。这使得快捷键即使没有连接到任何控件也可以工作。由于菜单项了解键盘手势,如果您将该命令挂钩到菜单项,它们将自动在菜单项文本中显示您的快捷键。创建静态属性来保存命令(最好是作为为命令创建的静态类中的属性 - 但是对于一个简单的例子,只需在window.cs中使用静态属性):public&nbsp;static&nbsp;RoutedCommand&nbsp;MyCommand&nbsp;=&nbsp;new&nbsp;RoutedCommand();添加应该调用方法的快捷键:MyCommand.InputGestures.Add(new&nbsp;KeyGesture(Key.S,&nbsp;ModifierKeys.Control));创建一个指向您的方法以在执行时调用的命令绑定。将它们放在UI元素的命令绑定中(例如,窗口)和方法:<Window.CommandBindings> &nbsp;&nbsp;&nbsp;&nbsp;<CommandBinding&nbsp;Command="{x:Static&nbsp;local:MyWindow.MyCommand}"&nbsp;Executed="MyCommandExecuted"/></Window.CommandBindings>private&nbsp;void&nbsp;MyCommandExecuted(object&nbsp;sender,&nbsp;ExecutedRoutedEventArgs&nbsp;e)&nbsp;{&nbsp;...&nbsp;}

慕森卡

我发现这正是我在寻找与WPF中的键绑定相关的内容:<Window.InputBindings> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<KeyBinding&nbsp;Modifiers="Control" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Key="N" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command="{Binding&nbsp;CreateCustomerCommand}"&nbsp;/></Window.InputBindings>请参阅博客文章MVVM CommandReference和KeyBinding

红颜莎娜

试试这个代码......首先创建一个RoutedComand对象&nbsp;&nbsp;RoutedCommand&nbsp;newCmd&nbsp;=&nbsp;new&nbsp;RoutedCommand(); &nbsp;&nbsp;newCmd.InputGestures.Add(new&nbsp;KeyGesture(Key.N,&nbsp;ModifierKeys.Control)); &nbsp;&nbsp;CommandBindings.Add(new&nbsp;CommandBinding(newCmd,&nbsp;btnNew_Click));
打开App,查看更多内容
随时随地看视频慕课网APP