当TabItem被选中时,想要所有默认样式但是Header FontWeight Bold FontWeight未选中TabItem时正常
<TabItem.Header>
<TextBlock>Header Text</TextBlock>
</TabItem.Header>
找到了一些例子,但无法做任何工作
答案 0 :(得分:3)
在TextBlock上应用DataTrigger
以查看是否已选择父TabItem
,如果评估为真,则将FontWeight
设置为Bold
。
此外,您也可以在TabItem
上使用该样式,但由于您提到了TextBlock
,我假设您正在使用TextBlock为Header做更多样式。
<TabItem.Header>
<TextBlock Text="Header Text">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelected,
RelativeSource={RelativeSource AncestorType=TabItem}}"
Value="True">
<Setter Property="FontWeight" Value="Bold"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</TabItem.Header>
您可以将其放在样式中以便将其重新用于其他tabItems -
<TabControl>
<TabControl.Resources>
<Style TargetType="TextBlock" x:Key="HeaderTextBlockStyle">
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelected,
RelativeSource={RelativeSource AncestorType=TabItem}}"
Value="True">
<Setter Property="FontWeight" Value="Bold"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TabControl.Resources>
<TabItem>
<TabItem.Header>
<TextBlock Text="Header Text"
Style="{StaticResource HeaderTextBlockStyle}"/>
</TabItem.Header>
</TabItem>
<TabItem>
<TabItem.Header>
<TextBlock Text="Another Header Text"
Style="{StaticResource HeaderTextBlockStyle}"/>
</TabItem.Header>
</TabItem>
</TabControl>
答案 1 :(得分:3)
<XXX.Resources>
<Style TargetType="TabItem" >
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="FontWeight" Value="Bold" />
</Trigger>
</Style.Triggers>
</Style>
</XXX.Resources>
<Grid>
<TabControl>
<TabItem Header="Item 1" />
<TabItem Header="Item 2" />
</TabControl>
</Grid>
答案 2 :(得分:3)
圣地亚哥的回答非常接近我所需要的。我仍然需要弄清楚如何附加到TabControl。以下是我最终的结果:
<TabControl>
<TabControl.Resources>
<Style TargetType="TabItem">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock FontWeight="Bold" Text="{Binding}"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</TabControl.Resources>
<!--TabItems here-->
</TabControl>
答案 3 :(得分:2)
我在一些答案之间使用了一个混合物,这对我来说非常合适:
<Style TargetType="TabItem">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock FontWeight="Bold" Text="{Binding}"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
答案 4 :(得分:1)
<Style x:Key="ActiveTab" TargetType="{x:Type TabItem}">
<Style.Resources>
<DataTemplate x:Key="header">
<TextBlock Text="{Binding}" FontWeight="Bold" />
</DataTemplate>
</Style.Resources>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="HeaderTemplate"
Value="{StaticResource header}" />
</Trigger>
</Style.Triggers>
</Style>