资源字典

开发工具与关键技术:Visual Studio 2015
作者:邓李庆
撰写时间:2019年6月15日
下面讲一个资源字典,英文:ResourceDictionary;WPF应用程序中,XAML资源分为StaticResource静态资源和DynamicResource动态资源。Windows8应用中,XAML资源仅支持StaticResource静态资源资源应用域不同,XAML资源可分为FrameworkElement.Resource和Application.Resources
FrameworkElement.Resources是将资源对象应用于同一个对象数的不同对象上,称之为页面资源,同常被定义在XAML页面根元素上。见代码图1:
在这里插入图片描述
图1

Application.Resources:贯穿整个应用级别的资源。首先创建资源字典成功就可以编写字典;style也是资源的一种,从某种意义上来说,它很类似于我们给普通HTML中的元素建立CSS。应用于所有TextBook元素样式:样式是最常见一个资源,而且它总是被定义在Resource Dictionary中,为了来重用。
Style其实就是一系列分组的Setter的集合,用来设定逻辑资源的属性值,它有一种比较特殊的情形就是Implicit Keys,可以不声明X:key而只设置x:TargetType的值,这样面对的就是对于所有这个类型的控件都使用这个样式。将 TargetType 属性设置为 TextBlock 而不为样式分配 x:Key,样式就会 应用于所有 TextBlock 元素。这种情况下,x:Key 隐式设置为 {x:Type TextBlock}。这意味着,如果将 x:Key 值显式设置为 {x:Type TextBlock} 之外的任何值,Style 就不会自动应用于所有 TextBlock 元素。见代码图2:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
图2
App.xaml:合并资源字典属性。所有的资源项在最终都会被整合到Resource Dictionary中的,也就是说无论是FrameworkElement的Resources,还是Window的Resources,还是Application的Resources,还是特定的ResourceDictionary中定义的Resources在整个应用编译执行的时候实际上他们都在一起的作为可遍历集合共同存在于一个相对会话空间内的。我们也提到过Resource的key是可以被允许有相同的,这样在遍历不同相对地址的Resource Dictionary时会根据StaticResource或者DynamicResource的lookup Behavior来确定哪个有效。通常为了维护和灵活性的考虑,我通常会将Resource Dictionary文件分成好几个,但在某些场合下我们只需要用其中某些资源,那么我么可以将资源从几个独立的文件中提取合并。见代码图3:
在这里插入图片描述
图3
创建一个新的窗口,拉一个button和TaxtBlock就可以看见效果。见图4:
在这里插入图片描述
图4

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值