我有一个正在开发的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)
主题定义了背景,但您需要自己设置它,因为它没有在主题中的任何位置被引用:
Background="{DynamicResource WindowBackgroundBrush}"
Run Code Online (Sandbox Code Playgroud)
为什么?我假设因为样式不会自动应用于派生类,所以如果设置的样式TargetType Window也需要设置明确,因为通常你使用的子类Window,例如MainWindow.
| 归档时间: |
|
| 查看次数: |
2281 次 |
| 最近记录: |