public static char GetKeyChar( KeyCodes keyCode, ModifierKeys modifiers )
{
bool isShiftDown = ( modifiers & ModifierKeys.Shift ) > 0;
switch ( keyCode )
{
case KeyCodes.A:
return isShiftDown ? 'A' : 'a';
case KeyCodes.B:
return isShiftDown ? 'B' : 'b';
case KeyCodes.C:
return isShiftDown ? 'C' : 'c';
case KeyCodes.D:
return isShiftDown ? 'D' : 'd';
case KeyCodes.E:
return isShiftDown ? 'E' : 'e';
case KeyCodes.F:
return isShiftDown ? 'F' : 'f';
case KeyCodes.G:
return isShiftDown ? 'G' : 'g';
case KeyCodes.H:
return isShiftDown ? 'H' : 'h';
case KeyCodes.I:
return isShiftDown ? 'I' : 'i';
case KeyCodes.J:
return isShiftDown ? 'J' : 'j';
case KeyCodes.K:
return isShiftDown ? 'K' : 'k';
case KeyCodes.L:
return isShiftDown ? 'L' : 'l';
case KeyCodes.M:
return isShiftDown ? 'M' : 'm';
case KeyCodes.N:
return isShiftDown ? 'N' : 'n';
case KeyCodes.O:
return isShiftDown ? 'O' : 'o';
case KeyCodes.P:
return isShiftDown ? 'P' : 'p';
case KeyCodes.Q:
return isShiftDown ? 'Q' : 'q';
case KeyCodes.R:
return isShiftDown ? 'R' : 'r';
case KeyCodes.S:
return isShiftDown ? 'S' : 's';
case KeyCodes.T:
return isShiftDown ? 'T' : 't';
case KeyCodes.U:
return isShiftDown ? 'U' : 'u';
case KeyCodes.V:
return isShiftDown ? 'V' : 'v';
case KeyCodes.W:
return isShiftDown ? 'W' : 'w';
case KeyCodes.X:
return isShiftDown ? 'X' : 'x';
case KeyCodes.Y:
return isShiftDown ? 'Y' : 'y';
case KeyCodes.Z:
return isShiftDown ? 'Z' : 'z';
case KeyCodes.Space:
return ' ';
case KeyCodes.QuestionMark:
return isShiftDown ? '?' : '/';
case KeyCodes.Comma:
return isShiftDown ? '<' : ',';
case KeyCodes.Period:
return isShiftDown ? '>' : '.';
case KeyCodes.D0:
return isShiftDown ? ')' : '0';
case KeyCodes.D1:
return isShiftDown ? '!' : '1';
case KeyCodes.D2:
return isShiftDown ? '@' : '2';
case KeyCodes.D3:
return isShiftDown ? '#' : '3';
case KeyCodes.D4:
return isShiftDown ? '$' : '4';
case KeyCodes.D5:
return isShiftDown ? '%' : '5';
case KeyCodes.D6:
return isShiftDown ? '^' : '6';
case KeyCodes.D7:
return isShiftDown ? '&' : '7';
case KeyCodes.D8:
return isShiftDown ? '*' : '8';
case KeyCodes.D9:
return isShiftDown ? '(' : '9';
case KeyCodes.Semicolon:
return isShiftDown ? ':' : ';';
case KeyCodes.Quotes:
// laziness :)
return isShiftDown ? '"' : "'"[ 0 ];
case KeyCodes.OpenBracket:
return isShiftDown ? '{' : '[';
case KeyCodes.CloseBracket:
return isShiftDown ? '}' : ']';
case KeyCodes.Backslash:
return isShiftDown ? '|' : '\\';
case KeyCodes.Plus:
return isShiftDown ? '+' : '=';
case KeyCodes.Subtract:
return isShiftDown ? '_' : '-';
case KeyCodes.Tilde:
return isShiftDown ? '~' : '`';
default:
return (char)0;
}
}