DynamicResource不工作,但StaticResource呢?

Max*_*Max 5 wpf dynamicresource staticresource

这是场景:

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

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

3)打开位于Themes文件夹中的Generic.xaml资源字典

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

<SolidColorBrush x:Key ="BackgroundBrush"Color ="Yellow"/>

5)从中更改嵌套Borer控件的Background属性

Background ="{TemplateBinding Background}"

Background ="{DynamicResource BackgroundBrush}"

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

Background ="{StaticResource BackgroundBrush}"

......它会起作用.为什么是这样?为什么StaticResource工作但不是DynamicResource?

Sim*_*rim 1

如果您在 Xaml 文件中对画笔进行硬编码,那么对我来说这听起来相当静态。

DynamicResource的 MSDN 条目表示,当您希望在运行时使用解析资源的名称(即名称存储在另一个资源中)时,您可以在编译时知道该名称。

听起来很像 C 中的指针和指向指针的指针。