WindowChrome/title 栏主题与加载的内容不同步 PresentationFramework/XAML

WindowChrome/title bar theme not syncing with loaded PresentationFramework/XAML

我正在尝试构建一个使用 XP Media Center 的 Royale 主题的 WPF 应用程序。我已经正确地将 PresentationFramework.Royale DLL 和相应的 XAML 资源引用到我的 App.xaml 中,并且可以确认 controls 非常 Royale-主题:

但是window本身不同步,WindowChrome/titlebar/window边框主题不同步,保持标准Windows 10 的演示风格。当然,这就是我要复制的内容,至少在视觉上是这样:

相关XAML,如果有用(默认所有*.cs文件):

App.xaml:

<Application x:Class="ExampleRoyale.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:Ariadne"
    StartupUri="MainWindow.xaml">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/PresentationFramework.Royale;component/themes/Royale.NormalColor.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>

MainWindow.xaml:

<Window x:Class="ExampleRoyale.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:ExampleRoyale"
    mc:Ignorable="d"
    Title="MainWindow" Height="450" Width="800">
    <Grid>
        <Button Content="Button" HorizontalAlignment="Left" Margin="94,39,0,0" VerticalAlignment="Top" Width="120"/>
        <ComboBox HorizontalAlignment="Left" Margin="94,12,0,0" VerticalAlignment="Top" Width="120"/>
        <Label Content="Label" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="79"/>
        <Label Content="Label 2" HorizontalAlignment="Left" Margin="10,39,0,0" VerticalAlignment="Top" Width="79"/>
        <RadioButton Content="RadioButton" HorizontalAlignment="Left" Margin="228,15,0,0" VerticalAlignment="Top" Width="102"/>
        <RadioButton Content="RadioButton 2" HorizontalAlignment="Left" Margin="228,44,0,0" VerticalAlignment="Top" Width="102"/>
        <TabControl Margin="82,72,82,71">
            <TabItem Header="TabItem">
                <Grid Background="#FFE5E5E5"/>
            </TabItem>
            <TabItem Header="TabItem">
                <Grid Background="#FFE5E5E5"/>
            </TabItem>
        </TabControl>
    </Grid>
</Window>

有没有办法将 Royale 主题应用到 window 容器本身,或者 Royale 控件是我能得到的最接近的吗?

Is there a manner to apply the Royale theme to the window container itself

不幸的是 (?) window 容器本身不是 WPF 的一部分,因此没有自定义样式。它是操作系统的一部分。

您可以 make Windows 10 look like Vista 通过更改 OS 设置作为用户(我没有尝试过)但这与 WPF 无关。