[英]Overwrite Mahapps Metro style for me header Tabitem
我正在使用 WPF 和 MVVM。 我安裝了 Mahapps Metro,這個 nuget package 為我的應用程序提供了所有 styles。
我制作了一個 TabControl,但 Mahapps 用於每個 TabItem 中的 header 的 FontSize 對於我的應用程序來說非常大。
我需要創建一個 StaticResource 來更改 TabItem 中 header 的 FontSize 而不刪除 Mahapps 提供的其他屬性。
將以下代碼放在窗口的資源中:
<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屬性更容易。
如上面的答案所示,將下面的代碼放在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}">
這對我有用。
看起來 API 自 2019 年以來發生了變化。“ControlHelper”似乎不再存在。 有關更改的一些信息,請參閱:鏈接到 MahApps GitHub 問題
這是對我有用的代碼:
<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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.