1. Resource的基本目的是为了在Xaml中实现复用。最常见的是在Resource中定义Style和Template。
2. 用x:key来标识一个Resource。key在同一个Resource Section中不允许重复,但不同的section中可以有相同的key,只要在使用时能确定唯一的Resource即可。查找Resource的路径:元素自己-->父元素-->Application。如果ResourceDictionary中引用了多个资源文件,文件中定义了相同的key,则后边的会将前面的内容覆盖掉。
3. Static Resource在加载时创建一次,它的key被丢弃,Resource对象会被一直使用(类似于程序中的静态变量)。相对地,Dynamic Resource在真正被使用时才创建,且key会被保存,当元素重绘时会根据key再次创建。
4. Static Resource在引用时必须是已经被定义过的,而Dynamic Resource则允许前向引用。
5. Dynamic Resource主要用来存取系统资源,比如系统颜色。
6. 无论是Static Resource还是Dynamic Resource都不具有象Binding一样的变化通知功能。动态资源看上去似乎是随系统设置变化而自动更新,但实际上是由于系统设置变化引起Element重绘,从而再次加载Dynamic Resource,并非Dynamic Resource自身有变化通知功能。
浙公网安备 33010602011771号