动态资源无法工作,但静态资源可以?

5
这里是场景:
1)打开Visual Studio 2008,创建新项目...
2)选择WPF自定义控件库作为项目类型
3)打开位于Themes文件夹中的Generic.xaml资源字典
4)添加一个简单的画笔,如下所示: 5)将嵌套的Borer控件的Background属性从
Background="{TemplateBinding Background}"
更改为
Background="{DynamicResource BackgroundBrush}"
现在,当您编译并在任何项目中使用此控件时,背景不会是黄色。但是,如果您将背景属性更改为StaticResource,如下所示
Background="{StaticResource BackgroundBrush}"
...它会起作用。为什么?为什么StaticResource有效而DynamicResource无效?

我这里也遇到了同样的问题。Expression Blend默认创建DynamicResource,导致程序运行不正确。这非常奇怪!自从你发布了这个问题以来,你有找到任何解决方法吗? - Arsen Zahray
1个回答

1

如果你在Xaml文件中硬编码刷子,那听起来对我来说相当静态。

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

听起来非常像C语言中的指针和指向指针的指针。


1
我不明白你的回答。这里没有硬编码,这是资源定义的方式。这与指针无关。 - Max

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接