• WPF 资源字典


    使用好处:存储需要被本地话的内容(错误消息字符串等,实现软编码),减少重复的代码,重用样式,实现多个项目之间的共享资源;
    修改一个地方所有引用的地方都会被修改,方便统一风格;

    使用方法,归纳起来主要有下面几个步骤:
    a. 创建资源字典文件,
    b. 资源字典集成
    c. 使用字典中的资源

    说明:在创建资源的时候要确保资源文件的编译选项为page,这样就能够保证XAML资源文件最终能够编译为baml文件。但是如果设置为Resource也是一个不错的选择,这样它能够嵌入到程序集中,但是不被编译,当然其解析的速度回稍微慢一点

    资源文件分级:
    系统性资源,一般会在app.xaml中集成;

    <ResourceDictionary>
    
                <ResourceDictionary.MergedDictionaries>
    
                    <ResourceDictionary Source="Test.xaml"/>
    
                </ResourceDictionary.MergedDictionaries>
    
            </ResourceDictionary>

    窗体级资源;

     <Window.Resources>
            <SolidColorBrush x:Key="FadeBrush" Color="Red"/>
        </Window.Resources>

    文件级资源;在窗体中再将其注册为窗体资源;

        <Window.Resources>
            <ResourceDictionary Source="MyResouceDictionary.xaml"></ResourceDictionary>
        </Window.Resources>


    对象控件级资源:定义在某个ContentControl ,作为子元素的共享资源;

         <Button  Grid.Row="0" Click="Button_Click" Background="{StaticResource  FadeBrush}" >
                <Button.Resources>
                    <SolidColorBrush x:Key="FadeBrush" Color="White" ></SolidColorBrush>
                </Button.Resources>
                <Button.Content>
                    <TextBlock Background="{StaticResource FadeBrush}" >看我自己的颜色</TextBlock>
                </Button.Content>
            </Button>

    文本框的背景显示白色;

    资源优先级:

    具体引用时,从所在容器向上查找,比如有相同key值的系统资源和窗体级资源,那么使用窗体级资源;
    对象级资源会覆盖窗体级资源;

    补充:

    动态资源:在后台中可以修改动态资源,比较灵活,动态资源是从所在的控件向上查找;
    静态资源:系统开销少,静态资源是从所在的容器向上查找;

    参考:http://www.cnblogs.com/tianyou/archive/2012/12/07/2806835.html

    大胡子的 WPF经典教程.pdf

  • 相关阅读:
    机器学习PAL产品优势
    机器学习PAI产品架构
    机器学习PAI
    Auto ML自动特征工程
    Auto ML自动调参
    自动机器学习(AutoML)
    MegEngine基本概念
    MegEngine计算图、MatMul优化解析
    https://music.163.com/#/playlist?id=977461211
    阅后归档 20201020
  • 原文地址:https://www.cnblogs.com/maanshancss/p/5282164.html
Copyright © 2020-2023  润新知