3

バーコード スキャナーからの入力を受け入れる画面を WPF で作成しました。PreviewTextInput イベントと KeyUp イベントをリッスンします。これにより、スキャナが何を入力し、いつ終了したかを判断できます。それはうまくいきます。フォームを表示するだけで、バーコード スキャンを受け入れることができます。

問題は、ページに他のコントロールがあり、それらが問題を引き起こしていることです。たとえば、フォームのボタンを押すと、そのボタンにフォーカスがあります。その時点から Enter キーを押すと、ボタン イベント ハンドラが起動されます。自動的にフォーカスを放棄しません。

この種の問題に対するエレガントな解決策を知っている人はいますか? すべてのイベント ハンドラーにコードを追加して別の要素にフォーカスするのは避けたいと思いますが、これは最後の手段として行います。

4

3 に答える 3

5

Button(実際にはUIElement)この特定の目的のためのプロパティがあります:UIElement.Focusable

xaml またはコードでこれを false に設定した場合でも、ボタンをクリックすることはできますが、他の UIElement からフォーカスが移動することはありません。

于 2009-09-29T15:49:56.127 に答える
0

このPreviewTextInputイベントは、バーコードの末尾にある Enter キーがヒットしたときにボタンが押されないように、フォーカスを変更することができます (ボタンにフォーカスがある場合はフォーカスを外します)。

于 2009-09-29T15:49:27.870 に答える
0

これらの機能を有効にするためにボタン属性を設定するだけです。
同意ボタン -Button.IsDefault = "True"
キャンセルボタン - Button.IsCancel = "True"

于 2012-03-06T04:44:34.417 に答える