WPF中的资源,也可以称为“局部定义的资源”,因为它们是定义在XAML中,而且它们通常会和应用程序中的某element、控件、页面或窗口相关联。对于资源来说,只有定义此资源的element内,以及在该element的孩子内,此资源才是可用的。就像C#中的“静态只读字段”一样,资源对象在运行时被建立一次,而且被引用它们的element所共享。
所有的资源储存在一个ResourceDictionary类型的对象中,ResourceDictionary对象内的每个项目都具有一个key,用来识别该对象。通常这些key只是文字字符串。为了定义资源的key,XAML定义了一个x:Key attribute。
资源是共享的,每个资源只需要建立一个对象。如果该资源没有被引用到,甚至不会建立对象。
StaticResource与DynamicResource代表存取资源的两种不同做法。两者都需要Key,而且使用这些Key来存取对象。如果是StaticResource,Key被用来存取对象一次,然后对象会被保留。当你使用DynamicResource,此Key会被保留,而对象在需要的时候就会被随时取用。
转载于:https://www.cnblogs.com/dequan-lee/archive/2008/06/20/1226422.html