Почему PreviewTextInput не обрабатывает пробелы?

Я обрабатываю событие PreviewTextInput в своем окне, чтобы обработать считывание с устройства чтения магнитных карт. Я обрабатываю событие в окне, поэтому не имеет значения, на каком отдельном элементе управления находится фокус.

Как только обработчик определяет, что смахивание началось (вводится символ «%» или «;»), он обрабатывает все события до тех пор, пока смахивание не будет завершено. Эта система обычно работает довольно хорошо, за некоторыми важными исключениями:

Когда символ пробела (и, возможно, символ \ n) вводится из модуля чтения, они не обрабатываются PreviewTextInput, а отправляются непосредственно в тот элемент управления, на котором находится фокус. . Как ни странно, обработчик действительно получает символы \ r. Это вызывает нежелательное поведение.

Мне нужен способ фиксировать все ключевых событий на уровне окна и иметь возможность обрабатывать их, если я хочу. Я пробовал PreviewKeyDown и нашел его немного громоздким в использовании и получении значений char из. PreviewTextInput намного лучше, потому что я могу просто прочитать свойство Text.

Есть ли причина, по которой PreviewTextInput не обрабатывает определенные символы? Есть ли сопоставимый метод получения всех событий, включая пробелы?

19
задан captncraig 13 January 2014 в 19:33
поделиться