C# 更改非活动选项卡标题字体颜色

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

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

现在是这样的,

我可以使用以下命令更改活动选项卡的字体颜色:

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

但我无法更改非活动选项卡的颜色。我想把灰色换成其他颜色;比如说绿色。可以更改吗?

MahApps.Metro
TabItem
使用动态资源,当其处于非活动状态时,“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>