Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何覆盖其标题的WPF GroupBox禁用(即灰色)颜色?_Wpf_Xaml - Fatal编程技术网

如何覆盖其标题的WPF 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

我已经按照前面的答案中的建议设置了包含HeaderTemplate的全局GroupBox样式。当启用受影响的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>


你的风格似乎适合我。groupbox标题是正确的颜色-暗蓝色,不透明度为0.5。你不是在说groupbox里面的东西,对吧?对我来说,只有当组被启用时,这个样式才对groupbox标题起作用。禁用groupbox时,groupbox标题将变为灰色。我希望边框(确实会改变)和标题匹配。我设置的默认(启用)颜色是:那时肯定会有其他事情发生,因为使用上面的样式对我来说非常合适。这是更大款式的简化版吗?我看不到DataTemplate.Triggers在做什么。样式触发器似乎足够了至少对我来说。谢谢你的快速回复。我将尝试不使用数据触发器的风格。我还将尝试禁用一些可能会影响我的groupbox对象的其他全局样式/资源。可能也很有用:您的样式对我来说似乎很好。groupbox标题是正确的颜色-暗蓝色,不透明度为0.5。你不是在说groupbox里面的东西,对吧?对我来说,只有当组被启用时,这个样式才对groupbox标题起作用。禁用groupbox时,groupbox标题将变为灰色。我希望边框(确实会改变)和标题匹配。我设置的默认(启用)颜色是:那时肯定会有其他事情发生,因为使用上面的样式对我来说非常合适。这是更大款式的简化版吗?我看不到DataTemplate.Triggers在做什么。样式触发器似乎足够了至少对我来说。谢谢你的快速回复。我将尝试不使用数据触发器的风格。我还将尝试禁用可能会影响我的groupbox对象的某些其他全局样式/资源。这可能也很有用: