Ich habe ein WPF-Fenster mit einem Datenraster. Ich versuche, mit einem Symbol-Scanner eine Zeichenfolge zu erfassen, die über einen virtuellen Keil gesendet wird. Für die Anwendung sieht es so aus, als wären die Zeichen getippt worden. Diese Zeichenfolge beginnt mit ASCII 1 (SOH).DataGrid PreviewTextInput -Ereignis Entfernen von Steuerzeichen aus der Eingabe
Wenn das Fenster den Fokus hat, empfängt PreviewTextInput des Fensters den SOH zusammen mit allen anderen vom Menschen lesbaren und nicht von Menschen lesbaren Werten. Wenn das Datagrid jedoch den Fokus hat, werden die nicht von Menschen lesbaren Zeichen entfernt.
Wenn ich ein PreviewKeyDown oder PreviewKeyUp auf dem Fenster habe, dann erscheinen die Zeichen richtig, egal was Fokus hat. Irgendwo entlang des Weges streift das Datengitter es aus. Leider, weil KeyDown/KeyUp die ASCII-Zeichen nicht anzeigt, kann ich diese Ereignisse nicht verwenden, ohne eine Art Parsing-Algorithmus schreiben zu müssen.
Kann mir jemand sagen, was ich tun kann, damit diese nicht-menschenlesbaren Steuerzeichen immer an PreviewTextInput gesendet werden? Oder wie analysiert man alle Zeichen in PreviewKeyDown?
Edited:
Wenn das Fenster den Fokus hat:
Window PreviewKeyDown - LeftCtrl
Window PreviewKeyDown - A
Window PreviewTextInput - <SOH>
Window PreviewKeyDown - Oem6
Window PreviewTextInput - ]
Window PreviewKeyDown - LeftShift
Window PreviewKeyDown - C
Window PreviewTextInput - C
Wenn das Datenraster Fokus hat:
Window PreviewKeyDown - LeftCtrl
DataGrid PreviewKeyDown - LeftCtrl
Window PreviewKeyDown - A
DataGrid PreviewKeyDown - A
Window PreviewKeyDown - Oem6
DataGrid PreviewKeyDown - Oem6
Window PreviewTextInput - ]
Window PreviewKeyDown - LeftShift
DataGrid PreviewKeyDown - LeftShift
Window PreviewKeyDown - C
DataGrid PreviewKeyDown - C
Window PreviewTextInput - C
keine Gedanken über meine Antwort? Hilft es? – Alan