データグリッドを持つWPFウィンドウがあります。私は、Symbolスキャナから仮想ウェッジを介して送信されている文字列をキャプチャしようとしています。アプリケーションには、文字が入力されたように見えます。この文字列は、ASCII 1(SOH)で始まります。DataGrid PreviewTextInputイベントコントロール文字を入力から削除します。
ウィンドウにフォーカスがあると、ウィンドウのPreviewTextInputは、他の人間が読み取り可能な値と人間が読み取ることのできない値と一緒にSOHを受け取ります。 しかし、データグリッドにフォーカスがあると、人間以外の読み込み可能な文字は取り除かれます。
ウィンドウに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