我正在开发一个有很多屏幕的 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/