XAML 为我覆盖Mahapps Metro样式标题选项卡项

hmtdttj4  于 2022-12-07  发布在  其他
关注(0)|答案(3)|浏览(147)

我正在使用WPF和MVVM。我安装了Mahapps Metro,这个nuget包为我的应用程序提供了所有样式。
我创建了一个TabControl,但是Mahapps在每个TabItem中用于标题的FontSize对于我的应用程序来说非常大。
我需要创建一个StaticResource来更改TabItem中标题的FontSize,而不删除Mahaps提供的其他属性。

ljsrvy3e

ljsrvy3e1#

将下列程式码放入 windows 的资源中,例如:

<Window
......
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
......
>
<Window.Resources>
        <Style x:Key="MenuLevel2" BasedOn="{StaticResource MetroTabItem}" TargetType="{x:Type TabItem}">
            <Setter Property="mah:ControlsHelper.HeaderFontSize" Value="24"></Setter>
        </Style>
<Window.Resources>

查看源代码[ https://github.com/MahApps/MahApps.Metro/blob/master/MahApps.Metro/Styles/Controls.TabControl.xaml,第158行],您可以看到程序员为设置此属性做了一个特殊的例外,因为字体位于Content Presenter内的控件模板中。设置ControlsHelper.HeaderFontSize属性更容易。

b0zn9rqh

b0zn9rqh2#

按照上面答案中的建议,将下面的代码放到Window中。资源

<Window
......
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
......
>
<Window.Resources>
        <Style x:Key="MenuLevel2" BasedOn="{StaticResource MetroTabItem}" TargetType="{x:Type TabItem}">
            <Setter Property="mah:ControlsHelper.HeaderFontSize" Value="15"></Setter>
        </Style>
<Window.Resources>

在TabItem区段中,加入样式详细数据。

<TabItem Header="Dimension Alias" Style="{DynamicResource MenuLevel2}">

这对我很有效。

eqzww0vc

eqzww0vc3#

似乎API自2019年以来发生了更改。“ControlHelper”似乎不再存在。有关更改的一些信息,请参阅:link to MahApps GitHub issue
下面是对我有效的代码:

<mah:MetroWindow.Resources>
        <Style BasedOn="{StaticResource MahApps.Styles.TabControl}" TargetType="TabControl">
            <Setter Property="mah:HeaderedControlHelper.HeaderFontSize" Value="12" />
            <Setter Property="mah:HeaderedControlHelper.HeaderFontWeight" Value="Bold" />                 
        </Style>
</mah:MetroWindow.Resources>

相关问题