C# 更改非活动选项卡标题字体颜色
我正在使用MahApps.Metro选项卡控件。我想知道,当选项卡处于非活动状态时,是否可以更改标题文本的字体颜色 现在是这样的, 我可以使用以下命令更改活动选项卡的字体颜色:C# 更改非活动选项卡标题字体颜色,c#,wpf,visual-studio,tabcontrol,mahapps.metro,C#,Wpf,Visual Studio,Tabcontrol,Mahapps.metro,我正在使用MahApps.Metro选项卡控件。我想知道,当选项卡处于非活动状态时,是否可以更改标题文本的字体颜色 现在是这样的, 我可以使用以下命令更改活动选项卡的字体颜色: <Controls:MetroAnimatedSingleRowTabControl.Resources> <SolidColorBrush x:Key="AccentColorBrush" Color="Red"/> </Contr
<Controls:MetroAnimatedSingleRowTabControl.Resources>
<SolidColorBrush x:Key="AccentColorBrush" Color="Red"/>
</Controls:MetroAnimatedSingleRowTabControl.Resources>
但我无法更改非活动选项卡的颜色。我想把灰色换成其他颜色;比如说绿色。可以更改吗?MahApps.MetroTabItem
使用动态资源,当其处于非活动状态时,“GrayNormalBrush”键作为字体颜色。因此,您所需要做的就是提供一个您喜欢的画笔
,作为带有该键的资源。根据你想要改变的范围,你必须选择一个合适的地方来放置你的画笔
更改单个选项卡项
要更改单个TabItem
上的非活动笔刷,请将笔刷放入其资源字典中:
<TabItem>
<TabItem.Resource>
<SolidColorBrush x:Key="GrayNormalBrush" Color="Red" />
</TabItem.Resources>
</TabItem>
您还可以将样式在层次结构中上移以扩大其范围,例如,如果将该样式作为窗口的资源,则该窗口中的所有选项卡项都将被修改
在整个应用程序中更改所有TabItem
s
事实证明,这一部分比将这种样式放入App.xaml资源字典要复杂一些。这里的关键是,这种风格应该在参考MahApps.Metro one之后定义。在我的例子中,当我在App.xaml中引用MahApps.Metro字典并将该样式放在那里时,第一个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>
...
谢谢。这很有帮助。是否也可以对字体进行其他更改?如将所选选项卡的标题字体设置为粗体。我尝试使用,但这会更改选项卡内容的字体,而不是选项卡标题字体。@Ilmetite您可以将MetroTabItem上的controls:ControlsHelper.HeaderFontWeight=“Bold”更改为粗体。@JMIII您可以指定控件命名空间解析为什么吗?@Grx70 sure xmlns:controls=“”
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
<ResourceDictionary Source="Resources.xaml" />
...
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>