zoukankan      html  css  js  c++  java
  • WPF点滴之合并资源与动态换肤

    合并多个外部资源字典成为本地字典

    示例代码 

    <ResourceDictionary>
                <ResourceDictionary.MergedDictionaries>
                    <ResourceDictionary Source="1.xmal"></ResourceDictionary>
                    <ResourceDictionary Source="2.xmal"></ResourceDictionary>
                </ResourceDictionary.MergedDictionaries>
            </ResourceDictionary>

    描述

     合并多个外部资源字典成为本地字典。当需要合并更多字典的时候只要在ResourceDictionary.MergedDictionaries节中顺序增加引用。

    特别提示
     合并字典(MergedDictionaries 集合中的字典)中对同一对象的同一子元素进行定义的时候,会产生覆盖效果:在这种情况下,所返回的资源将来自在 MergedDictionaries 集合中最后一个找到的字典。(在这里会显示myresourcedictionary2.xaml中的定义)。

    合并字典(MergedDictionaries 集合中的字典)中对同一对象的不同子元素定义的时候会产生叠加效果。

    动态换肤,也就是后台更改合并资源

    合并资源放在APP级:

      Application.Current.Resources.MergedDictionaries.Clear();
                    ResourceDictionary newRD = new ResourceDictionary();
                    newRD.Source = new Uri("1.xaml", UriKind.Relative);
                    Application.Current.Resources.MergedDictionaries.Add(newRD);

    合并资源放在Window级:

    this.Resources.MergedDictionaries.Clear();
                    ResourceDictionary newRD = new ResourceDictionary();
                    newRD.Source = new Uri("1.xaml", UriKind.Relative);        
                    this.Resources.MergedDictionaries.Add(newRD);

    如果有多个资源合并在一起,只想更改某个资源,可以这样更改

    ResourceDictionary newRD = new ResourceDictionary();
    newRD.Source = new Uri("1.xaml", UriKind.Relative);
    Application.Current.Resources.MergedDictionaries[0] = newRD;
  • 相关阅读:
    for循环计算
    使用for循环签到嵌套制作直角三角形
    使用if和switch制作简单的年龄生肖判断
    Echart设置x轴文字数据不隐藏
    前端可视化-表格-图形-工具
    Vue + Element 中的Echart单线图
    Vue + Element 实现多选框选项上限提示与限定
    前端网(http://www.qdfuns.com/)不能访问了
    JAVA 递归实现从n个数中选取m个数的所有组合
    前端知识点与小练习
  • 原文地址:https://www.cnblogs.com/amw2738/p/3672877.html
Copyright © 2011-2022 走看看