WPF 资源字典

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

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

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

资源文件分级:
系统性资源,通常会在app.xaml中集成;
编码

<ResourceDictionary>

            <ResourceDictionary.MergedDictionaries>

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

窗体级资源;url

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

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

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


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

     <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>

文本框的背景显示白色;htm

资源优先级:

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

 

补充:

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

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

大胡子的 WPF经典教程.pdf

相关文章
相关标签/搜索