StaticResource从自身的容器开始,向上查找资源,而DynamicResource从自身开始,向上查找资源。也就是说StaticResource不支持向前引用(自身创建引用点后,不能使用自身以后定义的资源)。
StaticResource不会在运行时改变资源,而DynamicResource可以在运行时动态改变资源。
如果资源在一开始被定义好,并且在运行时不会改变,则使用StaticResource。如果希望支持向后引用或者资源在运行时会动态改变,则使用DynamicResource。
最后需要提到一点当需要设置的属性不是DependencyObject或Freezable类型的时候,需要用staticResource,
而DynamicResource只支持依赖属性,或是Freezable的属性。