2009-08-14 5 views

Répondre

19

En supposant que vous êtes toujours dans le gestionnaire d'événements de la souris, vous pouvez vérifier la valeur de Keyboard.Modifiers. Je ne pense pas qu'il y ait de toute façon à obtenir des informations de modification de l'événement lui-même, donc vous devez interroger le clavier directement.

+3

Comment ennuyeux ... si je comprends bien, cela signifie que si la l'utilisateur lâche le clavier entre le moment où l'événement de la souris est déclenché et le moment où le gestionnaire d'événements interroge le clavier, il détectera les mauvais états de la clé. –

+1

@ M.Dudley Peu importe que vous capturiez l'état du clavier ou WPF fait ... la souris et le clavier sont disjoints, donc la condition de course est inévitable. –

16

Selon la réponse d'Andy, vous utilisez Keyboard.Modifiers. Je pensais que je posterais un petit exemple

Quelque chose comme ceci dans votre gestionnaire d'événements devrait fonctionner:

private void MyExampleButton_Click(object sender, RoutedEventArgs e) 
{ 
    if ((Keyboard.Modifiers & ModifierKeys.Control) > 0) { 
     System.Diagnostics.Debug.WriteLine("Control is pressed"); 
    } else { 
     System.Diagnostics.Debug.WriteLine("Control is NOT pressed"); 
    } 
} 

Cordialement, Mike

Questions connexes