繁体   English   中英

在 WPF 中为自定义 GroupBox Header 从 Mahapps 继承样式

[英]Inherit style from Mahapps for custom GroupBox Header in WPF

我的GroupBox元素需要一个自定义标题。 现在的问题是,当我在我的 App 中切换样式时,header 中CheckBox的标签对象不会根据新的主题样式更改前景。

如何从当前主题继承样式?

我试图从 StaticRessource LabelTextBrush 继承样式,但是标签始终保持黑色。 也许这是错误的资源?

<GroupBox x:Name="gpDetailView" Grid.Column="1" Margin="5" Grid.Row="3" Grid.ColumnSpan="2">
    <GroupBox.Header>
        <DockPanel>
            <CheckBox x:Name="ckbState" Content="Ersatzteil aktiv" Foreground="{DynamicResource LabelTextBrush}">
                <CheckBox.Resources>
                    <Style TargetType="{x:Type CheckBox}" BasedOn="{StaticResource {x:Type CheckBox}}">
                        <Setter Property="Foreground" Value="{DynamicResource LabelTextBrush}"/>
                    </Style>
                </CheckBox.Resources>
            </CheckBox>
        </DockPanel>
    </GroupBox.Header>
    <Grid>


    </Grid>
</GroupBox>

任何帮助表示赞赏! 谢谢!

您可以尝试使用IdealForegroundColorBrush或依靠BackgroundToForegroundConverter来获得“理想的”前景画笔:

<CheckBox x:Name="ckbState" Content="Ersatzteil aktiv"
          xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
          xmlns:Converters="clr-namespace:MahApps.Metro.Converters;assembly=MahApps.Metro">
    <CheckBox.Foreground>
        <MultiBinding Converter="{x:Static Converters:BackgroundToForegroundConverter.Instance}">
            <Binding Mode="OneWay" Path="Background" RelativeSource="{RelativeSource AncestorType=GroupBox}" />
            <Binding Mode="OneWay" Path="(Controls:GroupBoxHelper.HeaderForeground)" RelativeSource="{RelativeSource AncestorType=GroupBox}" />
        </MultiBinding>
    </CheckBox.Foreground>
</CheckBox>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM