标签:顺序 ResourceDictionary Key WPF 替换 资源 字典
当我们需要在程序中替换主题,更换另一套背景、颜色、样式时,如何在不修改资源Key值,直接替换呢?
问题&疑问
1. Key值冲突
同一ResourceDictionary中,不可以使用相同Key
2. 资源替换
添加俩套样式,Xaml下是否可以将原有的资源(如样式)替换成新的资源?
加载顺序是否会冲突,比如俩个字典中都存有Image.Search图片资源,最终会以哪个字典中的资源为准呢
ResourceDictionary的合并方案
WPF的ResourceDictionary合并时,合并的规则能解决此冲突及加载顺序问题
ResourceDictionary合并:
- 检查ReourceDictionary所有资源Key列表
- 检查ResourceDictionary.MergedDictionaries中的字典,从列表尾部遍历到表头。
- 按以上检查顺序,检查到相同Key值时,会以检查到的首个Key为准。即添加字典时,最后一个字典下的资源。
详细的官方文档,截图如下:
所以,不同主题的资源,可以通过MergedDictionaries添加不同的字典,以加载顺序来覆盖之前的主题资源。
标签:顺序,ResourceDictionary,Key,WPF,替换,资源,字典 来源: https://www.cnblogs.com/kybs0/p/10675462.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。