WPF主题不适用于背景

Ent*_*ity 4 wpf

我有一个正在开发的WPF应用程序,它允许用户切换当前主题.我想出了如何切换主题 ......但似乎应用程序的背景不受主题的影响:

在此输入图像描述

(我将三张图片混合在一起以节省空间)

我怎样才能解决这个问题?它清楚地表明这里的背景是应该改变...

这是我正在使用的代码:

MainWindow.xaml:

<Window x:Class="GDE.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" MinWidth="525" MinHeight="350">
    <Grid>
        ....
    </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

App.xaml:

<Application x:Class="GDE.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary x:Name="ThemeDictionary">
                    <ResourceDictionary.MergedDictionaries>
                        <ResourceDictionary Source="/Themes/ExpressionDark.xaml"/>
                    </ResourceDictionary.MergedDictionaries>
                </ResourceDictionary>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>
Run Code Online (Sandbox Code Playgroud)

H.B*_*.B. 7

主题定义了背景,但您需要自己设置它,因为它没有在主题中的任何位置被引用:

Background="{DynamicResource WindowBackgroundBrush}"
Run Code Online (Sandbox Code Playgroud)

为什么?我假设因为样式不会自动应用于派生类,所以如果设置的样式TargetType Window也需要设置明确,因为通常你使用的子类Window,例如MainWindow.