.net TabItem.IsSelected时标题粗体

.net TabItem.IsSelected时标题粗体,.net,wpf,tabs,tabitem,.net,Wpf,Tabs,Tabitem,选择TabItem时,需要所有默认样式,但标题FontWeight粗体除外 未选择TabItem时FontWeight正常 <TabItem.Header> <TextBlock>Header Text</TextBlock> </TabItem.Header> 标题文本 已找到一些示例,但无法执行任何操作在文本块上应用DataTrigger,以查看是否选择了父项TabItem,并将fontwweight设置为Bold,如果计算结果为

选择TabItem时,需要所有默认样式,但标题FontWeight粗体除外
未选择TabItem时FontWeight正常

<TabItem.Header>
    <TextBlock>Header Text</TextBlock>
</TabItem.Header>

标题文本

已找到一些示例,但无法执行任何操作

在文本块上应用
DataTrigger
,以查看是否选择了父项
TabItem
,并将
fontwweight
设置为
Bold
,如果计算结果为真

您也可以在
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>


您可以将其设置为样式,以便在其他选项卡项中继续使用-

<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>

在文本块上应用
DataTrigger
,查看是否选择了父项
TabItem
,如果计算结果为真,则将
fontwweight
设置为
Bold

您也可以在
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>


您可以将其设置为样式,以便在其他选项卡项中继续使用-

<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>





我混合使用了一些答案,这非常适合我:

<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>

我混合使用了一些答案,这非常适合我:

<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。以下是我的结论:

<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>

圣地亚哥的答案非常接近我的需要。我仍然需要弄清楚如何连接到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>


此解决方案优于@RohitVats的解决方案,因为它的可重用性要高得多,而且您只能在样式中定义一次,而不是在每个项目的基础上定义一次。谢谢,这会加粗标题,但也会加粗内容。我只想加粗标题。尚未测试Rohit Vatso'k的答案没有想到这一点,我将稍后对答案进行修改。请看最后一个答案。此解决方案优于@RohitVats'解决方案,因为它更易于重用,并且您只在样式中定义一次,而不是在每个项目的基础上。谢谢,这会加粗标题,但也会加粗内容。我只想加粗标题。还没有测试Rohit Vatso'k的答案没有想到这一点,我会在稍后修改答案。看看最后一个答案。我可以在选项卡上应用一次,而不必为每个选项卡项设置它吗?是的,在资源部分中定义它,并对所有选项卡项重复使用它。我已经更新了答案,请检查.Works。我可以在选项卡上应用一次,而不必为每个选项卡项设置它吗?是的,在资源部分中定义它,并对所有选项卡项重复使用它。我已经更新了答案,请检查。