簡體   English   中英

為我覆蓋 Mahapps Metro 風格 header Tabitem

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM