首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在运行时更改主题

在运行时更改主题
EN

Stack Overflow用户
提问于 2011-06-04 00:08:18
回答 4查看 34.6K关注 0票数 24

我有一个带有主题(ShinyRed.xaml)的WPF应用程序,我想要有一个按钮,当单击该按钮时会将主题更改为ShinyBlue.xaml

我最初在App.xaml中加载主题:

代码语言:javascript
复制
<Application.Resources>
    <ResourceDictionary Source="/Themes/ShinyBlue.xaml"/>
</Application.Resources>

我该怎么做呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-06-04 00:12:26

这里有一篇文章将带你一步步完成它:

http://svetoslavsavov.blogspot.com/2009/07/switching-wpf-interface-themes-at.html

基本上,您需要从资源字典中删除“旧”主题,然后合并到新的主题中。上面的文章向您展示了如何使此更改变得非常简单。

票数 6
EN

Stack Overflow用户

发布于 2012-10-03 02:31:18

我正在使用以下命令在运行时设置主题:

代码语言:javascript
复制
Application.Current.Resources.Source = new Uri("/Themes/ShinyRed.xaml", UriKind.RelativeOrAbsolute);
票数 6
EN

Stack Overflow用户

发布于 2016-06-21 23:00:01

App.xaml

代码语言:javascript
复制
    <Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Themes/Font.xaml" />
            <ResourceDictionary Source="Themes/Light.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

在你的代码中:

代码语言:javascript
复制
> Application.Current.Resources.MergedDictionaries[1].Source = new Uri("Themes/Dark.xaml", UriKind.RelativeOrAbsolute);

您可以使用此命令进行检查,以确保没有任何东西生长

Application.Current.Resources.MergedDictionaries.Count.ToString();

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6229724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档