Keyboard Input Differences Between Winforms and WPF 7. December 2010 Brandon WinForms, WPF, Silverlight (0) I'm currently converting a winforms app into a WPF app and discovered the key events are significantly different in WPF. Here's a few tips and things to look out for: The old KeyPressEventArgs.KeyChar is just a char and included the modifier key stroke (CTRL-S = 'S'-64 = (Char)19, SHIFT-S = 's'-32 = 'S'). The new KeyEventArgs.Key is an enum that includes every key. Modifier keys are their own key stroke. (Char)KeyInterop.VirtualKeyFromKey(e.Key) will get you the char value from the new enum, although it is always upper case. Since modifier keys raise an event in WPF, I find I'm ignoring them alot://ignore modifier keysif (e.Key == Key.LeftCtrl || e.Key == Key.RightCtrl || e.Key == Key.LeftAlt || e.Key == Key.RightAlt || e.Key == Key.LeftShift || e.Key == Key.RightShift){ e.Handled = false; return;}