3

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

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

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

4

3 回答 3

5

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

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

于 2009-09-29T15:49:56.127 回答
0

PreviewTextInput事件可以改变焦点(如果按钮有焦点,则散焦),这样当条形码末尾的回车键按下时,按钮就不会被按下。

于 2009-09-29T15:49:27.870 回答
0

我们只需设置按钮属性即可启用这些功能。
接受按钮 -Button.IsDefault = "True"
取消按钮 - Button.IsCancel = "True"

于 2012-03-06T04:44:34.417 回答