TabItem.Header 当被选中时加粗

pap*_*zzo 1 .net wpf tabs tabitem

想要所有默认样式,但当选择 TabItem 时标题 FontWeight 为粗体
FontWeight 未选择 TabItem 时为正常

<TabItem.Header>
    <TextBlock>Header Text</TextBlock>
</TabItem.Header>
Run Code Online (Sandbox Code Playgroud)

找到了一些例子,但无法进行任何工作

Roh*_*ats 5

应用于DataTriggerTextBlock 以查看是否TabItem选择了父级并将其设置FontWeightBold计算结果是否为 true。

您也可以使用该样式TabItem,但既然您提到了TextBlock问题,我假设您正在使用 TextBlock 为标题做更多样式设置。

<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>
Run Code Online (Sandbox Code Playgroud)

您可以将其放入样式中以将其重新用于其他 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>
Run Code Online (Sandbox Code Playgroud)


era*_*zap 5

<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>
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,这确实使标题加粗,但也使内容加粗。我只想将标题加粗。尚未测试 Rohit Vats 的答案 (5认同)