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

时间:2016-04-29 10:45:19

标签: wpf mahapps.metro

我正在使用Mahapp.metro我已经创建了一个自定义标题来设置字体大小,为此,我在TabControl.Resources中编写了一个statis资源,请参阅:

<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控件样式消失,我只有灰色字体的标题,因此用户无法查看是否选中了点击的标签,我该如何恢复这个属性?也许Mahapp.metro提供了另一种简单的解决方案,可以在不创建任何静态资源的情我在文档站点上找不到TabControl

1 个答案:

答案 0 :(得分:1)

当您自己设置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确实提供了附加属性来更改标题字体大小。 您可以在TabItem上使用controls:ControlsHelper.HeaderFontSize来获得效果。