DynamicResource不工作,但StaticResource呢?

时间:2009-12-08 20:33:50

标签: wpf staticresource dynamicresource

以下是该方案:

1)打开Visual Studio 2008,创建新项目......

2)选择WPF Custom Control Library作为项目类型

3)打开位于Themes文件夹

中的Generic.xaml资源字典

4)添加一个简单的画笔,例如:

< SolidColorBrush x:Key =“BackgroundBrush”Color =“Yellow”/>

5)从

更改嵌套Borer控件的Background属性

背景=“{TemplateBinding Background}”

Background =“{DynamicResource BackgroundBrush}”

现在,当您在任何项目中编译和使用此控件时,背景将不会为黄色。但是,如果您将background属性更改为StaticResource

Background =“{StaticResource BackgroundBrush}”

......它会奏效。为什么是这样?为什么StaticResource工作但不是DynamicResource ???

1 个答案:

答案 0 :(得分:1)

如果您在Xaml文件中对画笔进行硬编码,那对我来说听起来很不稳定。

DynamicResource的MSDN条目说这是用于在运行时使用解析资源名称的时候(即名称存储在另一个资源中),您在编译时知道该名称

听起来非常像一个指针,指向来自C的指针指针。