I need a simple way to set a shortcut for menu items.
But this don´t work with shortcut, just with click:
<MenuItem Header="Editar"> <MenuItem Header="Procurar" Name="MenuProcurar" InputGestureText="Ctrl+F" Click="MenuProcurar_Click"> <MenuItem.ToolTip> <ToolTip> Procurar </ToolTip> </MenuItem.ToolTip> </MenuItem> </MenuItem>
I am using WPF 4.0
Keyboard shortcuts are generally used to expedite common operations by reducing input sequences to a few keystrokes, hence the term "shortcut". To differentiate from general keyboard input, most keyboard shortcuts require the user to press and hold several keys simultaneously or a sequence of keys one after the other.
H.B. was right... I just wanted to add more precisions.
Remove the Click
event on your MenuItem
and associate it with a Command
instead.
1 - Add/create your commands:
<Window.CommandBindings> <CommandBinding Command="Open" Executed="OpenCommandBinding_Executed"/> <CommandBinding Command="SaveAs" Executed="SaveAsCommandBinding_Executed"/> </Window.CommandBindings>
The commands are refering to the following code:
private void OpenCommandBinding_Executed(object sender, ExecutedRoutedEventArgs e) { Open();//Implementation of open file } private void SaveAsCommandBinding_Executed(object sender, ExecutedRoutedEventArgs e) { SaveAs();//Implementation of saveAs }
2 - Associate the commands with the wanted keys:
<Window.InputBindings> <KeyBinding Key="O" Modifiers="Control" Command="Open"/> <KeyBinding Key="S" Modifiers="Control" Command="SaveAs"/> </Window.InputBindings>
3 - Finally assign the commands with you menu item (InputGestureText
is just a decorating text):
<Menu Name="menu1"> <MenuItem Header="_File"> <MenuItem Name="menuOpen" Header="_Open..." Command="Open" InputGestureText="Ctrl+O"/> <MenuItem Name="menuSaveAs" Header="_Save as..." Command="SaveAs" InputGestureText="Ctrl+S"/> </MenuItem> </Menu>
That way multiple inputs may be associated to the same command.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With