2012-04-30 13 views
5

Desidero rilevare quando una combinazione come Ctrl-C viene premuta in un'applicazione WPF. Quello che ho letto on-line dice di usare qualcosa di simile a quanto segue nell'evento KeyDown (o KeyUp):Rilevamento di combinazioni di tasti

if ((Keyboard.Modifiers == ModifierKeys.Control) && (e.Key == Key.S)) 
{ 
    MessageBox.Show("Save!"); 
} 

Sto solo cercando di capire come funziona. A quanto ho capito, e.Key contiene il tasto premuto che ha attivato l'evento e Keyboard.Modifiers contiene le informazioni sullo stato del tasto di controllo al momento. È sicuro assumere che il tasto Control sarà ancora inattivo quando viene gestito l'evento KeyDown?

Ad esempio, riavvio Firefox e macina via un sacco di schede, e nel frattempo ho premuto Ctrl-S nella mia applicazione. C'è un ritardo nel raggiungere KeyDown, e l'applicazione pensa che S sia stato premuto.

Grazie

risposta

3

Si potrebbe usare KeyBindings invece, essi definiscono gesti pieni senza una tale separazione.

Problemi correlati