Обнаружение комбинаций клавиш

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

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

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

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

Спасибо

6
задан H.B. 30 April 2012 в 17:46
поделиться