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條經驗 獲得超13個贊
試試這個代碼......
首先創建一個RoutedComand對象
RoutedCommand newCmd = new RoutedCommand(); newCmd.InputGestures.Add(new KeyGesture(Key.N, ModifierKeys.Control)); CommandBindings.Add(new CommandBinding(newCmd, btnNew_Click));
添加回答
舉報
0/150
提交
取消