wpf - DynamicResource 不工作,但 StaticResource 可以吗?

标签 wpf staticresource dynamicresource

这是场景:

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

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

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

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

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

5) 将嵌套 Borer 控件的 Background 属性从

背景="{模板绑定(bind)背景}"



背景="{DynamicResource BackgroundBrush}"

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

背景="{StaticResource BackgroundBrush}"

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

最佳答案

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

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

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

关于wpf - DynamicResource 不工作,但 StaticResource 可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1869646/

相关文章:

xaml - 通过组合其他画笔(渐变等)来创建画笔

wpf - ComponentResourceKey 作为 DynamicResource 的问题

wpf - 合并字典中共享的静态资源

c# - 即使在 WPF 中打开新窗口,也会更新主窗口的属性

c# - 获取winform列表框的所有项目

wpf - 有没有安全的方法来分离/卸载行为而没有副作用?

wpf - 将图像设置为 Button 的样式内容

wpf - 将 Setter 值绑定(bind)到 DynamicResource

wpf - DynamicResource 绑定(bind)到 Color 不起作用

c# - 在静态方法中访问 WPF Name 属性