You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为WPF应用中所有控件设置不可聚焦(Focusable="false")?

通用解决方案:给FrameworkElement创建全局样式

当然有更简便优雅的实现方式!你完全不用为每种控件单独编写样式——因为WPF里绝大多数控件都继承自FrameworkElement,而Focusable正是这个基类的属性,我们可以直接给它设置全局样式,一次性覆盖所有派生控件。

实现代码

把这段样式添加到你的App.xaml(全局生效)或者目标Window的Resources中即可:

<Style TargetType="FrameworkElement">
    <Setter Property="Focusable" Value="False" />
</Style>

效果说明

这个样式会自动应用到所有继承自FrameworkElement的控件上,比如Button、TextBox、CheckBox、ListBox等等,彻底省去逐个控件配置的麻烦。

例外情况处理

如果有个别控件需要保留获得焦点的能力,你只需要在该控件的本地属性中显式设置Focusable="True"即可——因为WPF的属性优先级是本地属性 > 全局样式,这样就能轻松覆盖全局设置:

<Button Focusable="True" Content="允许获得焦点的特殊按钮" />

或者你也可以给特定控件编写更具体的样式,同样能覆盖全局规则。

内容的提问来源于stack exchange,提问作者Tejföl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:46:53