我正在使用WPF和MVVM。我安装了Mahapps Metro,这个nuget包为我的应用程序提供了所有样式。
我制作了一个TabControl,但Mahapps用于每个TabItem标题的FontSize对我的应用来说非常大。
我需要创建一个StaticResource来更改TabItem中标题的FontSize,而不删除Mahapps提供的其他属性。
答案 0 :(得分:13)
将以下代码放在窗口的资源中:
<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属性更容易。
答案 1 :(得分:2)
如上面的答案所示,将以下代码放在Window.Resources
中 <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}">
这对我有用。