关于实现更换主题颜色的一个问题

hhddzz 2011-03-27 02:36:25
比如在 应用程序资源集 中设置了一个<Color x:Key="BaseColor">#FF112233</Color>
所有的界面元素都以这种颜色为基调

如果直接使用这个Color倒是没问题
但实际中不可能所有界面元素都一个颜色,必然要进行一些微调,比如增加或降低透明度,饱和度等等
这个时候不知道该怎么设置才好


我想到两种办法,都感觉不太好
第一种,不要这个BaseColor资源,把它移动到程序代码中。然后在改变BaseColor的时候通过程序代码设置所有界面元素的颜色。
随着界面元素越来越多,这个设置过程会越来越大

第二种,在资源集里加一系列颜色资源,比如
<Color x:Key="TextBlockForegrounColor/>
<Color x:Key="ButtonEnabledBackgroundColor/>
…… ……
这样的话,BaseColor也就没有存在的意义了,因为每次用户改变主题颜色的时候都是直接改变这一大堆Color
...全文
67 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

8,735

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧