设为首页 加入收藏

TOP

ResourceDictionary主题资源替换(一) :通过加载顺序来覆盖之前的主题资源
2019-09-17 19:08:18 】 浏览:42
Tags:ResourceDictionary 主题 资源 替换 通过 加载 顺序 覆盖 之前

当我们需要在程序中替换主题,更换另一套背景、颜色、样式时,如何在不修改资源Key值,直接替换呢?

问题&疑问

 1. Key值冲突

同一ResourceDictionary中,不可以使用相同Key

2. 资源替换

添加俩套样式,Xaml下是否可以将原有的资源(如样式)替换成新的资源?

加载顺序是否会冲突,比如俩个字典中都存有Image.Search图片资源,最终会以哪个字典中的资源为准呢

 

ResourceDictionary的合并方案

WPF的ResourceDictionary合并时,合并的规则能解决此冲突及加载顺序问题

ResourceDictionary合并:

  1. 检查ReourceDictionary所有资源Key列表
  2. 检查ResourceDictionary.MergedDictionaries中的字典,从列表尾部遍历到表头。
  3. 按以上检查顺序,检查到相同Key值时,会以检查到的首个Key为准。即添加字典时,最后一个字典下的资源。

详细的官方文档,截图如下:

所以,不同主题的资源,可以通过MergedDictionaries添加不同的字典,以加载顺序来覆盖之前的主题资源。

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C# 创建含多层分类标签的Excel图表 下一篇Entity Framework Core(EF Core..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目