Я обрабатываю событие PreviewTextInput в моем окне, чтобы обработать считывания с устройства чтения магнитных карт.Я обрабатываю событие в окне, так что не имеет значения, на каком отдельном элементе управления находится фокус.
После того, как обработчик определил, что смахивание началось (вводится символ «%» или «;»), он обрабатывает все события до тех пор, пока смахивание не будет завершено.Эта система, как правило, работает довольно хорошо, с несколькими важными исключениями:
Когда символ пробела (и, возможно, символ \ n) вводится из считывателя, они не обрабатываются PreviewTextInput, но отправляются непосредственно во что угодноконтроль сфокусирован.Как ни странно, обработчик получает \ r символов.Это вызывает нежелательное поведение.
То, что я хочу, - это способ всех ключевых событий на уровне окна и возможность обрабатывать их, если я хочу.Я попробовал PreviewKeyDown и нашел его немного громоздким для использования и для получения значений char.PreviewTextInput намного приятнее, потому что я могу просто прочитать свойство Text.
Существует ли причина, по которой PreviewTextInput не обрабатывает определенные символы?Есть ли сопоставимый метод для получения всех событий, включая пробелы?