Как переопределить отключенный (т.е. серый) цвет WPF GroupBox для его заголовка? - PullRequest
2 голосов
/ 29 апреля 2011

Я следовал советам предыдущих ответов для установки глобального стиля GroupBox, который включает шаблон HeaderTemplate. Стиль отлично работает, когда задействованные объекты GroupBox включены. Когда затронутые объекты GroupBox отключены, я могу только изменить цвет границы. Мне не нужен серый цвет по умолчанию, когда объекты GroupBox отключены. Мой стиль GroupBox показан ниже:

    <!-- 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...