我試圖用鍵盤快捷鍵爲WPF菜單項
<MenuItem x:Name="Options" Header="_Options" InputGestureText="Ctrl+O" Click="Options_Click"/>
到鍵盤快捷鍵在我的XAML代碼添加到菜單項與按Ctrl + Ø
但它無法正常工作 - 它不會調用Click選項。
有沒有解決方案?
我試圖用鍵盤快捷鍵爲WPF菜單項
<MenuItem x:Name="Options" Header="_Options" InputGestureText="Ctrl+O" Click="Options_Click"/>
到鍵盤快捷鍵在我的XAML代碼添加到菜單項與按Ctrl + Ø
但它無法正常工作 - 它不會調用Click選項。
有沒有解決方案?
InputGestureText
只是一個文本。它不會將密鑰綁定到MenuItem
。
此屬性不會將輸入手勢與菜單項相關聯;它只是添加文本到菜單項。應用程序必須處理用戶的輸入進行動作
你可以做的是與分配的輸入手勢的窗口
public partial class MainWindow : Window
{
public static readonly RoutedCommand OptionsCommand = new RoutedUICommand("Options", "OptionsCommand", typeof(MainWindow), new InputGestureCollection(new InputGesture[]
{
new KeyGesture(Key.O, ModifierKeys.Control)
}));
//...
}
創建RoutedUICommand
,然後在XAML綁定該命令的一些方法集該命令針對MenuItem
。在這種情況下,兩個InputGestureText
和Header
將從RoutedUICommand
拉,這樣你就不需要設置,對MenuItem
<Window.CommandBindings>
<CommandBinding Command="{x:Static local:MainWindow.OptionsCommand}" Executed="Options_Click"/>
</Window.CommandBindings>
<Menu>
<!-- -->
<MenuItem Command="{x:Static local:MainWindow.OptionsCommand}"/>
</Menu>
謝謝,這真的工作 – keerthee
你應該以這種方式取得成功: Defining MenuItem Shortcuts 通過使用鍵綁定:
<Window.CommandBindings> <CommandBinding Command="New" Executed="CommandBinding_Executed" /> </Window.CommandBindings> <Window.InputBindings> <KeyBinding Key="N" Modifiers="Control" Command="New"/> </Window.InputBindings>
我不想一個內置命令,但我自己 – keerthee
http://stackoverflow.com/questions/4682915/defining-menuitem-shortcuts –