WPF键盘快捷键 - 为什么这不起作用?

Jus*_*tin 5 c# keyboard wpf

我有以下代码(不起作用):

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

为什么这不起作用?事件正在解雇,但是

(e.Key == Key.P) && (Keyboard.Modifiers == ModifierKeys.Alt))
Run Code Online (Sandbox Code Playgroud)

永远不会评估为真.我的类似事件使用Ctrl而不Alt是以这种方式工作.我的活动也包括Ctrl Alt工作.

Pau*_*ler 3

在 WPF 中使用按键的更好方法是按键手势

例如,请注意,这是一个示例,而不是解决方案

<Window.InputBindings>
  <KeyBinding Command="ApplicationCommands.Open" Gesture="ALT+P" />
</Window.InputBindings>
Run Code Online (Sandbox Code Playgroud)

还有更多的事情要做,但你会很容易地完成它。这就是 WPF 处理键的方式!

PK:-)