我想让我的应用程序(C#+ WPF)的用户构建自己的主题和皮肤。 实现这一目标的最佳途径是什么?是否有一些例子或某些我需要寻找的“皮肤引擎”?
来自Web开发我通常使用XAML和图像来构建UI ......但是这样所有来源都将被“硬编码”,嵌入主exe或者某些dll中......
相反,我希望有一些文本文件包含所有参数(如颜色,间距,尺寸,字体大小等...)以及jpg或png格式的文件夹中包含的所有图像。 有可能吗?
谢谢!
答案 0 :(得分:1)
我不知道WPF的任何预先构建的皮肤引擎,允许用户选择颜色并更新应用程序。但是我在WPF应用程序中对“带有所有参数的文本文件...”使用了类似的方法,并且它运行得相当好。
我们使用了主题颜色/图标/等的XML文件。在运行时加载并用于使用公司定义的颜色更新应用程序资源。图片。根据您的体系结构,您还可以将皮肤/主题存储在数据库中。
为了实现这一点,我们提出了几点建议:
Colors
集(例如LightControlColor,ControlColor,DarkControlColor,LightBackgroundColor,BackgroundColor,Dark ...)。这些是XML文件中定义的颜色,将在外观/主题更改时更新。Brushes
标准集。这些画笔将使用Colors
,因此ControlBackgroundBrush可以是由SolidColorBrush
(来自上方)之一组成的Colors
,也可以是LinearGradientBrush
由多种颜色组成。DynamicResource
无处不在StaticResource
,以便在根据XML文件更新Color
资源时,所有内容都会更新。Colors
中的Application.Resources
,因为在呈现可视元素时会评估DynamicResources
。在您加载,解析和合并皮肤时,启动画面是占用用户的好方法。