You never really press multiple keys down at the same time. You only can hold two or more keys down at the same time. Can you see the difference? At low level, keyboard gives out serialized sequence of events, without any "at the same time", but the events are not key presses. Such primary low-level hardware event is the event of pressing a key down or releasing the key. (And of course, there are no characters at all, there are no status, toggle and "normal" keys, they are all equal; the characters, for example, appear on higher level of OS, depending on active input method, language, etc.) At the level of WPF event handling, you only handle the keys translated to the high-level key definition system, depending on many factors, but you still can handle
KeyDown
and
KeyUp
separately. You don't really have to track the key status yourself.
All you need, in addition to usual keyboard event handling, is to check up the key state using
System.Windows.Input.Keyboard.IsKeyDown
:
https://msdn.microsoft.com/en-us/library/ms604273%28v=vs.110%29.aspx[
^].
—SA