WPF资源与样式全解析
1. 静态资源与动态资源
在为属性分配资源引用时,可将其分配为StaticResource或DynamicResource。需要注意的是,并非资源本身具有静态或动态的特性,同一个资源在分配给一个属性时可作为StaticResource,而分配给另一个属性时可作为DynamicResource。二者的区别在于是否会监控ResourceDictionary中的引用变化,并将这些变化传递给引用该资源的属性。
-StaticResource:从ResourceDictionary中读取StaticResource时,其引用仅被分配给属性一次。若资源库中的引用发生变化,该变化不会传播到持有原始引用的属性。
-DynamicResource:若库中的资源发生变化,持有旧引用的属性会在后台自动更新。
以下是一个示例,展示了如何使用StaticResource和DynamicResource:
<Window x:Class="DynamicResource.Window1" ... > <Window.Resources> <LinearGradientBru