【发布时间】:2016-01-24 06:54:05
【问题描述】:
我有一个 TabItem 样式,当它被选中时,它会更改 TabItem 的字体颜色。问题是这也会改变 TabItem.Content 中包含的 GroupBox 标题的字体颜色,而我不能这样做。代码如下:
风格
<Style x:Key="TabItem" TargetType="TabItem">
<Setter Property="Padding" Value="10,7,2,7" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="Foreground" Value="#333"></Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Border Padding="{TemplateBinding Padding}" Name="tab" BorderThickness="0" BorderBrush="Transparent" SnapsToDevicePixels="True">
<ContentPresenter Name="content" ContentSource="Header" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="tab" Property="Background" Value="#007ACC"/>
<Setter TargetName="tab" Property="BorderBrush" Value="#007ACC" />
<Setter TargetName="tab" Property="Cursor" Value="Arrow" />
</Trigger>
<Trigger Property="IsSelected" Value="False">
<Setter TargetName="tab" Property="Background" Value="#F0F0F0" />
<Setter TargetName="tab" Property="BorderBrush" Value="#F0F0F0" />
<Setter TargetName="tab" Property="Cursor" Value="Hand" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Foreground" Value="White"></Setter>
</Trigger>
</Style.Triggers>
</Style>
控件
<TabControl x:Name="tabControl1" Background="#FFF" Grid.Row="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="-10,10,0,0" ScrollViewer.VerticalScrollBarVisibility="Visible" TabStripPlacement="Left">
<TabItem Header="General" Style="{StaticResource TabItem}">
<GroupBox Header="The text that shouldn't be (but is) turning white">
</GroupBox>
</TabItem>
</TabControl>
GroupBox 是基于 TabItem 还是包含一个?
【问题讨论】:
-
你解决过这个问题吗?
标签: c# wpf xaml tabcontrol tabitem