【问题标题】:DynamicResource not working, but StaticResource does?DynamicResource 不工作,但 StaticResource 可以吗?
【发布时间】:2010-12-24 14:06:42
【问题描述】:

这是场景:

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

2) 选择WPF自定义控件库作为项目类型

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

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

5) 更改嵌套 Borer 控件的背景属性

Background="{TemplateBinding 背景}"

Background="{DynamicResource BackgroundBrush}"

现在当你在任何项目中编译和使用这个控件时,背景不会是黄色的。但是,如果您将背景属性更改为这样的静态资源

Background="{StaticResource BackgroundBrush}"

...它会工作的。为什么是这样?为什么 StaticResource 有效,DynamicResource 无效???

【问题讨论】:

  • 这里有同样的问题。 Expression Blend 默认创建 DynamicResource,这是由于程序运行不正确造成的。这很奇怪!发布问题后,您有什么发现吗?

标签: wpf staticresource dynamicresource


【解决方案1】:

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

DynamicResource 的 MSDN 条目说这是为了当您希望使用在运行时解析资源的名称(即名称存储在另一个资源中)时,您在编译时知道名称。

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

【讨论】:

  • 我不明白你的回答。没有硬编码,这是定义资源的方式。这里没有关于指针的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多