我有一个带有主题(ShinyRed.xaml)的WPF应用程序,我想要有一个按钮,当单击该按钮时会将主题更改为ShinyBlue.xaml
我最初在App.xaml中加载主题:
<Application.Resources>
<ResourceDictionary Source="/Themes/ShinyBlue.xaml"/>
</Application.Resources>
我该怎么做呢?
发布于 2011-06-04 00:12:26
这里有一篇文章将带你一步步完成它:
http://svetoslavsavov.blogspot.com/2009/07/switching-wpf-interface-themes-at.html
基本上,您需要从资源字典中删除“旧”主题,然后合并到新的主题中。上面的文章向您展示了如何使此更改变得非常简单。
发布于 2012-10-03 02:31:18
我正在使用以下命令在运行时设置主题:
Application.Current.Resources.Source = new Uri("/Themes/ShinyRed.xaml", UriKind.RelativeOrAbsolute);
发布于 2016-06-21 23:00:01
App.xaml
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Themes/Font.xaml" />
<ResourceDictionary Source="Themes/Light.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
在你的代码中:
> Application.Current.Resources.MergedDictionaries[1].Source = new Uri("Themes/Dark.xaml", UriKind.RelativeOrAbsolute);
您可以使用此命令进行检查,以确保没有任何东西生长
Application.Current.Resources.MergedDictionaries.Count.ToString();
https://stackoverflow.com/questions/6229724
复制相似问题