c# - 获得焦点时突出显示 WPF 控件

标签 c# wpf resourcedictionary

我正在开发一个有很多屏幕的 WPF 应用程序,每个屏幕上都有很多控件。 确定哪个控件具有焦点变得非常困难。

所以我想突出显示当前关注它的控件。它可以是文本框、按钮、组合框、列表框或网格。

如果我们可以使用样式和触发器来做到这一点会更好。

谢谢

最佳答案

您应该为正确的事件使用触发器。在你的情况下是 IsFocused .简单示例:

<Trigger Property="IsFocused" Value="true">
    <Setter Property="BorderBrush" Value="Red" />
    <Setter Property="BorderThickness" Value="1" />
</Trigger>

你应该使用 Style标记,如果您想将此样式应用于特定 控件类型(例如,使用 TargetType="{x:Type TextBox}" )。

如果你想在你的应用程序中应用到所有控件类型,那么你应该考虑使用只有这种触发器的基本样式,而不是仅仅在你的自定义样式中继承它BasedOn属性: <Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource BaseFocusStyle}">

如何做到这一点的一个很好的例子是一个 SO 问题:“How to make Style.Triggers trigger a different named style to be applied”。

关于c# - 获得焦点时突出显示 WPF 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11027215/

相关文章:

c# - 如何为父对象属性设置默认绑定(bind)属性?

c# - 如何在 C#/Bouncy CaSTLe 中创建 PBKDF2-SHA256 密码哈希

c# - 在设计时禁止绑定(bind)到静态属性

c# - ListView 不刷新其项目

wpf - 帮助我的WPF布局

c# - 在 WPF 中,我可以在 2 个按钮之间共享相同的图像资源吗

C#:通过反射获取值(value)

c# - 需要将泛型转换为其接口(interface)

wpf - 在文件夹中搜索和列出 WPF 资源字典

c# - 如何在Windows Phone类库项目中使用ResourceDictionary