3 回答

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個(gè)贊
我理解標(biāo)準(zhǔn)方法是創(chuàng)建命令,然后將快捷鍵作為InputGestures添加到它們。
這使得快捷鍵即使沒(méi)有連接到任何控件也可以工作。由于菜單項(xiàng)了解鍵盤手勢(shì),如果您將該命令掛鉤到菜單項(xiàng),它們將自動(dòng)在菜單項(xiàng)文本中顯示您的快捷鍵。
創(chuàng)建靜態(tài)屬性來(lái)保存命令(最好是作為為命令創(chuàng)建的靜態(tài)類中的屬性 - 但是對(duì)于一個(gè)簡(jiǎn)單的例子,只需在window.cs中使用靜態(tài)屬性):
public static RoutedCommand MyCommand = new RoutedCommand();
添加應(yīng)該調(diào)用方法的快捷鍵:
MyCommand.InputGestures.Add(new KeyGesture(Key.S, ModifierKeys.Control));
創(chuàng)建一個(gè)指向您的方法以在執(zhí)行時(shí)調(diào)用的命令綁定。將它們放在UI元素的命令綁定中(例如,窗口)和方法:
<Window.CommandBindings> <CommandBinding Command="{x:Static local:MyWindow.MyCommand}" Executed="MyCommandExecuted"/></Window.CommandBindings>private void MyCommandExecuted(object sender, ExecutedRoutedEventArgs e) { ... }

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊
我發(fā)現(xiàn)這正是我在尋找與WPF中的鍵綁定相關(guān)的內(nèi)容:
<Window.InputBindings> <KeyBinding Modifiers="Control" Key="N" Command="{Binding CreateCustomerCommand}" /></Window.InputBindings>
請(qǐng)參閱博客文章MVVM CommandReference和KeyBinding

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊
試試這個(gè)代碼......
首先創(chuàng)建一個(gè)RoutedComand對(duì)象
RoutedCommand newCmd = new RoutedCommand(); newCmd.InputGestures.Add(new KeyGesture(Key.N, ModifierKeys.Control)); CommandBindings.Add(new CommandBinding(newCmd, btnNew_Click));
添加回答
舉報(bào)