TabItem MouseOver 样式随自定义资源一起消失

TabItem MouseOver style disappeared with custom resource

我正在使用 Mahapp.metro 我创建了自定义 header 来设置字体大小,为此我在 TabControl.Resources 中制作了一个统计资源,请参阅:

<TabControl.Resources>
    <Style x:Key="headerStyle" TargetType="{x:Type TextBlock}">
          <Setter Property="Control.FontFamily" Value="Bauhaus 93" />
          <Setter Property="Control.FontSize" Value="12" />
          <Setter Property="Control.Foreground" Value="DimGray" />
     </Style>
</TabControl.Resources>

这就是我应用资源的方式:

<TabItem>
    <TabItem.Header>
         <TextBlock Text="Modalità notifiche" Style="{StaticResource headerStyle}" FontFamily="Segoe UI" FontWeight="Bold"/>
         </TabItem.Header> 
         ...

现在有个问题,Mahapp.metro控件样式消失了,我只有header,字体是灰色的,所以用户看不到点击的tab是否被选中与否,我怎样才能恢复这个 属性?也许 Mahapp.metro 提供了另一种简单的解决方案来做到这一点而不创建任何静态资源?我在文档站点上找不到 TabControl

当您自己设置 Style 时,您已经覆盖了 MahApps 设置的隐式样式。如果你想保留隐式类型,你可以像这样基于你现有的样式:

<Style x:Key="headerStyle" TargetType="{x:Type TextBlock}" BasedOn="{StaticResource {x:Type TextBlock}}">
      <Setter Property="Control.FontFamily" Value="Bauhaus 93" />
      <Setter Property="Control.FontSize" Value="12" />
      <Setter Property="Control.Foreground" Value="DimGray" />
 </Style>

是的,Mahaps 确实提供了附加的 属性 来更改 header 字体大小。 您可以在 TabItem 上使用 controls:ControlsHelper.HeaderFontSize 来获得效果。