Как изменить семейство шрифтов всех элементов wpf-xaml

Я использую тему MetroDark.

Я использую этот код в xaml:

    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Theme/MetroDark/MetroDark.MSControls.Core.Implicit.xaml" />
                <ResourceDictionary Source="Theme/MetroDark/MetroDark.MSControls.Toolkit.Implicit.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <Style TargetType="{x:Type Label}" >
                <Setter Property="FontFamily" Value="B titr" />
                <Setter Property="FontSize" Value="13" />
                <Setter Property="FontWeight" Value="Bold" />
            </Style>
            <Style TargetType="{x:Type TextBox}" >
                <Setter Property="FontFamily" Value="B Nazanin" />
                <Setter Property="FontSize" Value="16" />
                <Setter Property="FontWeight" Value="Bold" />
            </Style>
        </ResourceDictionary>
    </Application.Resources>

семейство шрифтов было изменено правильно, но также изменился цвет фона.

Я просто хочу изменить семейство и размер шрифта, а также другое свойство (например, фон, рамка и т. Д.) И получить эффект от темы по умолчанию (MetroDark).

Как я могу это сделать?

2 ответа

Установить базовый стиль в BasedOn атрибут, как это:

<Style TargetType="{x:Type Label}" BasedOn="{StaticResource {x:Type Label}}">

<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">

таким образом, пользовательский стиль наследует все настройки из базового стиля и может переопределить некоторые из них

Я изменяю app.xaml таким образом, но он не работает.

<Application x:Class="Amlaak.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="frmProduct.xaml">

    <Application.Resources>
        <ResourceDictionary>            
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Theme/MetroDark/MetroDark.MSControls.Core.Implicit.xaml" />
                <ResourceDictionary Source="Theme/MetroDark/MetroDark.MSControls.Toolkit.Implicit.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <Style TargetType="{x:Type Label}" BasedOn="{StaticResource {x:Type Label}}">
                <Setter Property="FontFamily" Value="B titr" />
                <Setter Property="FontSize" Value="13" />
                <Setter Property="FontWeight" Value="Bold" />
            </Style>
            <Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
                <Setter Property="FontFamily" Value="B Nazanin" />
                <Setter Property="FontSize" Value="16" />
                <Setter Property="FontWeight" Value="Bold" />
            </Style>
        </ResourceDictionary>
    </Application.Resources>
</Application>
Другие вопросы по тегам