WPF 在没有焦点的情况下接受输入

Jas*_*ung 3 wpf focus barcode-scanner

我在 WPF 中创建了一个屏幕,它接受来自条形码扫描仪的输入。我监听 PreviewTextInput 事件和 KeyUp 事件,这让我可以确定扫描仪“输入”的内容以及完成的时间。效果很好。您只需显示表格,它就会接受条形码扫描。

问题是,我的页面上还有其他控件,它们导致了问题。例如,当您按下表单上的按钮时,该按钮就会获得焦点。从该点开始按 Enter 键会导致触发按钮事件处理程序。它不会自动放弃焦点。

有谁知道此类问题的优雅解决方案?我不想向每个事件处理程序添加代码来聚焦另一个元素,但我将这样做作为最后的手段。

Ree*_*sey 5

Button(实际上UIElement)有一个用于此特定目的的属性:UIElement.Focusable

如果您在 xaml 或代码中将其设置为 false,您仍然可以单击该按钮,但它不会将焦点从其他 UIElement 上移开。