2012-04-30 4 views
5

Я хочу определить, когда в приложении WPF нажата комбинация, такая как Ctrl-C. То, что я прочитал в Интернете говорит, чтобы использовать что-то вроде следующего в KeyDown (или KeyUp) Событие:Обнаружение комбинаций клавиш

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

Я просто пытаюсь понять, как это работает. Насколько я понимаю, e.Key содержит ключ, который был нажат, который вызвал событие и Keyboard.Modifiers содержит информацию о состоянии клавиши управления прямо сейчас. Можно ли предположить, что к моменту завершения события KeyDown ключ управления все равно будет недоступен?

Например, я перезапускаю Firefox, и он отмахивается от загрузки кучи вкладок, и тем временем я нажимаю Ctrl-S в своем приложении. Задержка с получением KeyDown, и приложение считает, что нажата S.

Благодаря

ответ

3

Вы могли бы использовать KeyBindings вместо этого, они определяют полные жесты без такого разделения.