Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WPF Keyboard Shortcut - Why is this not working?

Tags:

I have the follwing code (which is not working):

private void Window_PreviewKeyDown(object sender, KeyEventArgs e) {
    e.Handled = true;
    if ((e.Key == Key.P) && (Keyboard.Modifiers == ModifierKeys.Alt)) {
        MessageBox.Show("Thanks!");
    }            
}

Why doesn't this work? The event is firing, but

(e.Key == Key.P) && (Keyboard.Modifiers == ModifierKeys.Alt))

never evaluates to true. My similar events using Ctrl instead of Alt in this way work. Also my events that include Ctrl and Alt work as well.

like image 933
Justin Avatar asked Mar 10 '10 01:03

Justin


1 Answers

A better way to work with keys in WPF is Key Gestures

e.g. note that this is an example, not a solution

<Window.InputBindings>
  <KeyBinding Command="ApplicationCommands.Open" Gesture="ALT+P" />
</Window.InputBindings>

There's more to it that that but you'll work it easily enough. That's the WPF way to handle keys!

PK :-)

like image 95
Paul Kohler Avatar answered Sep 28 '22 05:09

Paul Kohler