2012-04-30 20 views
5

Chcę wykryć, kiedy kombinacja jak Ctrl-C jest naciśnięty w aplikacji WPF. Co czytałem w Internecie mówi używać coś jak następuje w KeyDown (lub KeyUp) wydarzenie:Wykrywanie kombinacji klawiszy

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

Próbuję tylko zrozumieć jak to działa. Jak rozumiem, e.Key zawiera naciśnięty klawisz, który wywołał zdarzenie i Keyboard.Modifiers zawiera informacje o stanie klawisza Control już teraz. Czy można bezpiecznie założyć, że klawisz Control będzie nadal wyłączony do czasu obsługi zdarzenia KeyDown?

Na przykład uruchamiam ponownie Firefoxa i grinds away ładuje kilka kart, aw międzyczasie trafiam Ctrl-S w mojej aplikacji. Istnieje opóźnienie w dostaniu się do KeyDown, a aplikacja uważa, że ​​właśnie naciśnięto przycisk S.

Dzięki

Odpowiedz

3

można użyć KeyBindings zamiast tego zdefiniować pełen gestów bez takiej separacji.

Powiązane problemy