代码之家  ›  专栏  ›  技术社区  ›  Jason Young

wpf接受没有焦点的输入

  •  1
  • Jason Young  · 技术社区  · 15 年前

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

    问题是,我在页面上有其他控件,它们导致了问题。例如,当您按下窗体上的按钮时,该按钮便具有焦点。从该点按Enter键将激发按钮事件处理程序。它不会自动放弃焦点。

    有人知道 优雅的 这类问题的解决方案?我不希望向每个事件处理程序中添加代码来集中另一个元素,但我将作为最后的手段来完成这项工作。

    3 回复  |  直到 11 年前
        1
  •  4
  •   Dave Clemmer manu    11 年前

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

    如果在XAML或代码中将此设置为false,则仍可以单击按钮,但它不会将焦点从其他ui元素移开。

        2
  •  0
  •   amesh Vaibhav.Inspired    12 年前

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

        3
  •  0
  •   Dave Clemmer manu    11 年前

    这个 PreviewTextInput 事件可以更改焦距(如果按钮有散焦),这样当条形码末端的Enter键点击时,按钮就不会被按下。