2009-08-14 19 views

Respuesta

19

Suponiendo que todavía está en el controlador de eventos del mouse, puede verificar el valor de Keyboard.Modifiers. No creo que haya ningún modo de obtener información del modificador del evento en sí, así que tienes que interrogar directamente al teclado.

+3

¿Qué tan molesto ... si he entendido bien, esto significa que si el el usuario suelta el teclado entre el momento en que se dispara el evento del mouse y cuando el controlador de eventos interroga al teclado, detectará los estados clave incorrectos. –

+1

@ M.Dudley No importa si captura el estado del teclado o si lo hace WPF ... el mouse y el teclado son disjuntos, por lo que la condición de carrera es inevitable. –

16

Según la respuesta de Andy, utiliza Keyboard.Modifiers. Me imaginé que iba a publicar un pequeño ejemplo

Algo como esto en su controlador de eventos debería funcionar:

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

Saludos, Mike

Cuestiones relacionadas