在WPF MouseLeftButtonDown事件处理程序中按Ctrl键按条件

rem*_*rem 34 c# keyboard wpf event-handling

如何为某个键盘键添加附加条件到WPF MouseLeftButtonDown事件处理程序?

例如Ctrl+键

private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{         
    ...
}
Run Code Online (Sandbox Code Playgroud)

Sta*_*zev 62

private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) {
    if(Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl)) {
        MessageBox.Show("Control key is down");
    } else {
        MessageBox.Show("Control key is up");
    }
}
Run Code Online (Sandbox Code Playgroud)


742*_*742 43

如果您只想检测修改器,您还可以使用:

if (Keyboard.Modifiers == ModifierKeys.Control) {}
if (Keyboard.Modifiers == ModifierKeys.Shift) {}
Run Code Online (Sandbox Code Playgroud)

等.更在这里.

  • 不要忘记`ModifierKeys`是一个标志枚举.所以,正确检查ctrl按是`if((Keyboard.Modifiers&ModifierKeys.Control)== ModifierKeys.Control){}` (9认同)

小智 9

在.NET 4.0中,您可以使用:

Keyboard.Modifiers.HasFlag(ModifierKeys.Control)
Run Code Online (Sandbox Code Playgroud)