我有一個帶有數據網格的WPF窗口。我試圖從符號掃描器中捕獲通過虛擬楔子發送的字符串。對於應用程序,它看起來像字符被鍵入。該字符串以ASCII 1(SOH)開頭。DataGrid PreviewTextInput事件從輸入中刪除控制字符
當窗口有焦點時,窗口的PreviewTextInput會接收SOH以及所有其他人類可讀和非人類可讀的值。 但是,當datagrid具有焦點時,非人類可讀的字符將被刪除。
如果我在窗口上有一個PreviewKeyDown或PreviewKeyUp,那麼無論焦點是什麼,字符都能正確顯示。因此,在數據網格的某個地方將其剝離。不幸的是,因爲KeyDown/KeyUp不顯示ASCII字符,我不能使用這些事件,而不必編寫某種解析算法。
任何人都可以告訴我,我能做些什麼來讓這些非人類可讀的控制字符始終發送到PreviewTextInput?或者如何解析PreviewKeyDown中的所有字符?
編輯:
當窗口具有焦點:
Window PreviewKeyDown - LeftCtrl
Window PreviewKeyDown - A
Window PreviewTextInput - <SOH>
Window PreviewKeyDown - Oem6
Window PreviewTextInput - ]
Window PreviewKeyDown - LeftShift
Window PreviewKeyDown - C
Window PreviewTextInput - C
當數據網格具有焦點:
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
我的回答任何想法?它有幫助嗎? – Alan