У меня есть небольшой обработчик событий для обработки всех клавиш, нажимаемых пользователем или доставляемых сканером штрих-кода:
public void KeyDownSink(object sender, System.Windows.Input.KeyEventArgs e)
{
_textRead.Append(e.Key);
}
private StringBuilder _textRead = new StringBuilder();
Переменная _textRead
должна собирать все нажатые символы. Меня интересуют только ключи, которые выводят на печать (az, 0-9,! "§ $% и т. Д.). Если пользователь нажимает, например, Ctrl , это добавит строку LeftCtrl до _textRead
, поэтому я хочу пропустить эту клавишу.
Как отфильтровать управляющие клавиши, такие как Ctrl , Shift ,, Alt ... элегантным способом?
Я знаю, что могу достичь этого с помощью множества условных выражений (if e.Key == Key.Ctrl
), но я надеюсь найти более хороший способ.