2009-12-07 19 views

Respuesta

60
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"); 
    } 
} 
37

Si desea detectar sólo modificadores, también se puede utilizar:

if (Keyboard.Modifiers == ModifierKeys.Control) {} 
if (Keyboard.Modifiers == ModifierKeys.Shift) {} 

etc. Más here.

+0

Esta solución es más simple –

+6

No hay que olvidar que 'ModifierKeys' es una enumeración bandera. Por lo tanto, verificar correctamente para presionar ctrl es 'if ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control) {}' –

4

En .NET 4.0 que puede usar:

Keyboard.Modifiers.HasFlag(ModifierKeys.Control) 
Cuestiones relacionadas