• ResourceDictionary主题资源替换(一) :通过加载顺序来覆盖之前的主题资源


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

    问题&疑问

     1. Key值冲突

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

    2. 资源替换

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

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

    ResourceDictionary的合并方案

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

    ResourceDictionary合并:

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

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

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

  • 相关阅读:
    flask-script插件
    狗书(flask基础)
    2018.1.18纪事
    py3.6 + xadmin的自学网站搭建
    使用selenium抓取淘宝的商品信息
    pyquery操作
    requests模块
    python3里的Urllib库
    随便写点
    How many ways?? HDU
  • 原文地址:https://www.cnblogs.com/kybs0/p/10675462.html
Copyright © 2020-2023  润新知