如何覆盖其标题的WPF GroupBox禁用(即灰色)颜色?
我已经按照前面的答案中的建议设置了包含HeaderTemplate的全局GroupBox样式。当启用受影响的GroupBox对象时,该样式非常适用。当禁用受影响的GroupBox对象时,我只能更改边框颜色。禁用GroupBox对象时,我不希望使用默认的灰色。我的GroupBox样式如下所示:如何覆盖其标题的WPF GroupBox禁用(即灰色)颜色?,wpf,xaml,Wpf,Xaml,我已经按照前面的答案中的建议设置了包含HeaderTemplate的全局GroupBox样式。当启用受影响的GroupBox对象时,该样式非常适用。当禁用受影响的GroupBox对象时,我只能更改边框颜色。禁用GroupBox对象时,我不希望使用默认的灰色。我的GroupBox样式如下所示: <!-- This is the color brush I am trying to set on the header text --> <SolidColorBrus
<!-- This is the color brush I am trying to set on the header text -->
<SolidColorBrush x:Key="moDisabledFGColor" Color="DarkBlue" Opacity="0.5" />
<Style TargetType="{x:Type GroupBox}">
<Setter Property="BorderThickness" Value="2" />
<Setter Property="BorderBrush" Value="{StaticResource moFGColor}"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="Foreground" Value="{StaticResource moFGColor}" />
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock x:Name="HeaderText" Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type GroupBox}}, Path=Header}" FontWeight="Bold"
Foreground="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type GroupBox}}, Path=Foreground}" />
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=IsEnabled, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type GroupBox}}}" Value="False">
<Setter TargetName="HeaderText" Property="Foreground" Value="{StaticResource moDisabledFGColor}"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="BorderBrush" Value="{StaticResource moDisabledFGColor}" />
<Setter Property="Foreground" Value="{StaticResource moDisabledFGColor}" />
</Trigger>
</Style.Triggers>
</Style>
你的风格似乎适合我。groupbox标题是正确的颜色-暗蓝色,不透明度为0.5。你不是在说groupbox里面的东西,对吧?对我来说,只有当组被启用时,这个样式才对groupbox标题起作用。禁用groupbox时,groupbox标题将变为灰色。我希望边框(确实会改变)和标题匹配。我设置的默认(启用)颜色是:那时肯定会有其他事情发生,因为使用上面的样式对我来说非常合适。这是更大款式的简化版吗?我看不到DataTemplate.Triggers在做什么。样式触发器似乎足够了至少对我来说。谢谢你的快速回复。我将尝试不使用数据触发器的风格。我还将尝试禁用一些可能会影响我的groupbox对象的其他全局样式/资源。可能也很有用:您的样式对我来说似乎很好。groupbox标题是正确的颜色-暗蓝色,不透明度为0.5。你不是在说groupbox里面的东西,对吧?对我来说,只有当组被启用时,这个样式才对groupbox标题起作用。禁用groupbox时,groupbox标题将变为灰色。我希望边框(确实会改变)和标题匹配。我设置的默认(启用)颜色是:那时肯定会有其他事情发生,因为使用上面的样式对我来说非常合适。这是更大款式的简化版吗?我看不到DataTemplate.Triggers在做什么。样式触发器似乎足够了至少对我来说。谢谢你的快速回复。我将尝试不使用数据触发器的风格。我还将尝试禁用可能会影响我的groupbox对象的某些其他全局样式/资源。这可能也很有用: