views:

105

answers:

1

Question

I would like to assign the keyboard shortcut "Ctrl+," (control plus comma) to the "Preferences..." menu item. How do I do that?

There is a Key.OemComma in the Key enumeration. I have used Key.OemComma as shown in the code sample below. That works fine functionality-wise. But GUI-wise: the menu item is displayed as

  • Preferences (Ctrl+OemComma)

instead of

  • Preferences (Ctrl+,)

Sample Code

InputGestureCollection keyInputs = new InputGestureCollection();
keyInputs.Add(new KeyGesture(Key.OemComma, ModifierKeys.Control));
preferencesCommand = new RoutedUICommand("Preferences...", "Preferences", typeof(MyCommands), keyInputs);
+2  A: 

I think the KeyGesture constructor that takes a display string would work. You could call it like this:

InputGestureCollection keyInputs = new InputGestureCollection();
keyInputs.Add(new KeyGesture(Key.OemComma, ModifierKeys.Control, "Ctrl+,"));
preferencesCommand = new RoutedUICommand("Preferences...", "Preferences", typeof(MyCommands), keyInputs);
Andy
+1 Sweet, thanks! :)
Lernkurve