单击后如何防止WPF按钮保持突出显示?

lea*_*ner 38 .net c# wpf focus button

单击标准WPF按钮时,它会以蓝色突出显示(可能使用任何Windows主题设置的蓝色),并且在您与任何其他控件进行交互之前,它会一直保持突出显示.对于我的应用程序,它对用户来说很困惑.

是否有一个简单的方法将其关闭并使按钮恢复正常的样式?我使用的是.NET 4.

Cod*_*ray 50

发生的事情是按钮在单击后接受输入焦点,就像点击它时任何其他控件一样.

Windows指示控件具有输入焦点的方式(至少在Aero主题下)具有微妙的蓝色突出显示.

特别是对于按钮控制,当它具有输入焦点时,只需按下该Enter键即可"按下"该按钮.这就是保持亮点非常重要的原因,以便用户知道会发生什么.

更好的解决方案是在用户单击按钮后立即将焦点设置到窗口中的不同控件.这样,它将不再自动突出显示,并且当用户按下该Enter键时不会自动触发任何操作.(这是您尝试解决的真正的可用性问题,即使您还不知道它.当用户实际尝试输入内容时,没有什么比无意中被点击的按钮更令人困惑.)

可以通过将其Focusable属性设置为false 阻止该按钮完全获得焦点,但我非常建议不要这样做.一旦完成此操作,用户将无法仅使用键盘"按下"按钮.对于不喜欢或不能使用鼠标的用户,应始终可以访问设计良好的应用程序.

  • 值得注意的是,对于只有触摸屏访问(没有键盘或鼠标)的POS系统,这里最好的解决方案是`Focusable = false`.对我来说真正的问题是,当扫描RFID令牌时,它(实际上)键入一个10位数字,然后输入; 导致按钮被随机点击. (2认同)

HCL*_*HCL 11

尝试设置Focusable为false.该按钮可以点击,但不会保持聚焦状态.

  • @CodyGray除非它在商店的触摸屏上显示 - 例如.在这种情况下,焦点肯定是不需要的,键盘或鼠标输入根本不重要. (11认同)