ResourceDictionary资源字典出现的初衷就是在于它可以实现多个项目之间的共享资源,资源词典简单来说它就是一个XAML文档,这个文档就是装我们需要使用的资源。
它的使用可以减少重复的代码、重复的样式,多个项目共享。
在资源字典里的XAML代码修改一个地方的话,所有引用它的地方都会被修改。
这样的话方便项目统一风格。
1、创建资源字典第一步就是先要创建一个装资源字典的文件。
2、然后就是在文件夹那里添加资源字典
创建好后大概就是这个样子,然后在里面写我们需要的样式
3、然后呢第三步就是使用我们的资源字典。要是用资源字典,首选要将资源字典
集成到应用程序的一些资源合集中,然后就是在app.xaml文件中进行集成。
代码如下:
<!--Resource Dictionary –资源字典-->
<!--所有的资源项在最终都会被整合到Resource Dictionary中的,也就是说无论是FrameworkElement的Resources,还是Window的Resources,还是Application的Resources,
还是特定的ResourceDictionary中定义的resources在整个应用编译执行的时候实际上他们
都在一起的作为可遍历集合共同存在于一个相对会话空间内的。 我们也提到过Resource
的key是可以被允许有相同的,这样在遍历不同相对地址的Resource Dictionary时会根据StaticResource或者DynamicResource的lookup behavior来确定哪个有效。通常为了维护
和灵活性的考虑,我们通常会将Resource Dictionary文件分成好几个,但在某些场合下
我们只需要用其中某些资源,那么我么可以将资源从几个独立的文件中提取并合并.-->
<ResourceDictionary>
<!--给应用程序添加默认资源:其实就是将默认的Resource Dictionary加入到Application的全局Resource里边。-->
<ResourceDictionary.MergedDictionaries>
<!--封装好的公共样式-->
<ResourceDictionary Source="Tools/Dictionary/PublicBasic.xaml"/>
<!--封装好的公共样式-->
<ResourceDictionary Source="Tools/Dictionary/ButtonsBasic.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
然后使用资源字典的方法就是需要使用StaticResource关键字去添加
(如下图)
tatic Resource – 静态资源(StaticResource仅仅会被应用一次---在第一次需要资源时加载。而且这种引用方式不支持向前加载,所有的资源定义必须在引用之前定义)
Dynamic Resource – 动态资源,(与Static Resource不同的是,Dynamic Resource可以在程序运行时重新评估/计算资源来生成对应的对象/值,它支持向前引用,只要请求的key在整个应用程序内的任何Resources Dictionary定义过就可以被加载。如果有多个相同的key存在,则最后搜索到的资源为有效)
Resource Dictionary –资源字典(所有的资源项在最终都会被整合到Resource Dictionary中的,也就是说无论是FrameworkElement的Resources,还是Window的Resources,还是Application的Resources,还是特定的ResourceDictionary中定义的resources在整个应用编译执行的时候实际上他们都在一起的作为可遍历集合共同存在于一个相对会话空间内的)