Переписать заголовок в стиле Mahapps Metro для меня Tabitem

Я работаю с WPF и MVVM. Я установил Mahapps Metro, этот пакет nuget предоставляет все стили для моего приложения.

Я сделал TabControl, но FontSize, который Mahapps использует для заголовка в каждом TabItem, очень велик для моего приложения.

Мне нужно создать StaticResource, который изменяет FontSize заголовка в TabItem, не удаляя другие свойства, предоставляемые Mahapps.


person CampDev    schedule 29.04.2014    source источник


Ответы (2)


Поместите следующий код в ресурсы вашего окна, например:

<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.

person DR.    schedule 16.05.2014
comment
Это сработало для меня. Тег моих ресурсов выглядит следующим образом: ‹controls:MetroContentControl.Resources › ‹Style BasedOn={StaticResource MetroTabItem} TargetType={x:Type TabItem}› ‹Setter Property=controls:ControlsHelper.HeaderFontSize Value=20›‹/Setter› ‹/Style › ‹/controls:MetroContentControl.Resources › - person Shreyas; 25.06.2014

Как было предложено в приведенном выше ответе, поместите приведенный ниже код в 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}">

Это сработало для меня.

person Praveen M B    schedule 10.11.2016
comment
пропустил / в </Window.Resources> - person Leon; 09.12.2017