WPF 实现换肤功能

Posted 飘来荡去

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF 实现换肤功能相关的知识,希望对你有一定的参考价值。

将所有控件的基本样式汇集到一个资源字典中,构成界面的基本样式文件,然后进行不同颜色皮肤的定制。

即在新的皮肤资源字典文件中引入基本样式文件,然后使用资源继承,并且只设置控件的颜色属性等,形成一个皮肤文件。

注意:在设置不同皮肤文件时,不同控件的样式名字必须固定,只改变其颜色就能形成新的皮肤,因为在界面xaml中所有控件只引用一个样式名字。

换肤时需要设置本地json文件,对皮肤信息进行记录,以便下次启动程序加载上一次设置完毕的皮肤格式。

换肤——进行资源文件的替换:

Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = uri });  将目标皮肤加载到app.xaml中的资源字典中,其中uri就是皮肤的路径
Application.Current.Resources.MergedDictionaries.RemoveAt(0); 移除App.xaml中原来仅有的一个资源文件

 

App.xaml中只设置一个资源字典

 

以上是关于WPF 实现换肤功能的主要内容,如果未能解决你的问题,请参考以下文章

实现系统滚动条换肤功能

在HTML中。怎么样才能实现换肤的功能?

在 WPF 中的应用程序中创建可换肤图像的最佳方法

Android主题切换(Theme)实现日夜间功能

Android主题切换(Theme)实现日夜间功能

Android学习之 换肤功能模块的实现<二>