Я больше знаком с Silverlight, чем с полным WPF. Пожалуйста, рассмотрите мои ответы соответственно.
Для номера 2. Для многих ключей я проверяю KeyUp и KeyDown. Я использую KeyDown, пытаясь наблюдать все время, пока клавиша удерживается нажатой, и KeyUp, когда он использовался только один раз. Вы должны знать, что это было для игры без отдельного текстового поля.