2017-05-31 105 views
0

我正在使用MahApps.Metro选项卡控件。我想知道在选项卡处于非活动状态时是否可以更改标题文本的字体颜色。更改非活动标签页眉字体颜色

目前,它是这样的: enter image description here

我可以通过更改当前标签字体颜色:

 <Controls:MetroAnimatedSingleRowTabControl.Resources> 
      <SolidColorBrush x:Key="AccentColorBrush" Color="Red"/> 
     </Controls:MetroAnimatedSingleRowTabControl.Resources> 

enter image description here

,但我不能够改变颜色不活跃标签。我想将灰色改成其他颜色;比如让我们说绿色。有没有可能改变这一点?

回答

1

MahApps.MetroTabItemtemplate使用动态资源与"GrayNormalBrush"键时,它的不活动的字体颜色。所以你所需要做的就是提供一个你喜欢的Brush作为这个关键的资源。根据变化的范围,你想让你必须选择一个合适的地方来放置你的画笔。

改变单一TabItem

要更改无效刷上一个TabItem,把刷子在其资源词典:

<TabItem> 
    <TabItem.Resource> 
     <SolidColorBrush x:Key="GrayNormalBrush" Color="Red" /> 
    </TabItem.Resources> 
</TabItem> 

改变中的单个TabControl

所有 TabItem小号

修改所有TabItem s TabControl应覆盖TabItem的默认样式,把刷子在其资源字典,并把这种风格为TabControl的资源:

<TabControl> 
    <TabControl.Resources> 
     <!-- It's important to set the BasedOn property so that we 
      override the style rather than redefine it --> 
     <Style TargetType="{x:Type TabItem}" BasedOn="{StaticResource {x:Type TabItem}}"> 
      <Style.Resources> 
       <SolidColorBrush x:Key="GrayNormalBrush" Color="Red" /> 
      </Style.Resources> 
     </Style> 
    </TabControl.Resources> 
</TabControl> 

你也可以移动的风格了层次结构,以扩大其范围,例如如果您将该样式作为Window的资源,则该窗口内的所有TabItem将被修改。

在整个应用程序

这部分更改所有TabItem经证实比只是把这种风格在App.xaml中资源字典麻烦一点。关键是这个样式应该被定义为MahApps.Metro一个被引用。就我而言,我在MahApps.Metro字典引用的App.xaml和也把这种风格在那里,第一TabItem完全没有风格,而下述的人罚款和花花公子。

诀窍是创建一个单独的文件一本字典,说Resources.xaml,把这种风格出现,并参考来自App.xaml中字典。请注意,字典的引用顺序对于此解决方案的工作至关重要:

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" /> 
      <ResourceDictionary Source="Resources.xaml" /> 
      ... 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 
+0

谢谢。这有帮助。是否也可以对字体进行其他更改?就像使所选标签的标题字体为粗体。我尝试使用,但它改变了标签内容的字体而不是标签标题字体。 – ilmenite