为 WPF 中的自定义 GroupBox Header 从 Mahapps 继承样式
Inherit style from Mahapps for custom GroupBox Header in WPF
我的 GroupBox
元素需要自定义 header。现在的问题是,当我在我的应用程序中切换样式时,header 中的 CheckBox
的标签 object 不会根据新的主题样式更改前景。
如何继承当前主题的样式?
我尝试从 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
来获得 "ideal" 前景画笔:
<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>
我的 GroupBox
元素需要自定义 header。现在的问题是,当我在我的应用程序中切换样式时,header 中的 CheckBox
的标签 object 不会根据新的主题样式更改前景。
如何继承当前主题的样式?
我尝试从 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
来获得 "ideal" 前景画笔:
<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>