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 无关。
我正在尝试构建一个使用 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 无关。