如何在后面的代码中使用DynamicResource?

时间:2009-11-17 19:33:51

标签: .net wpf resources

我希望能够以编程方式将属性设置为动态资源。

myControl.Property = this.Resource[key]

不是有效的响应,因为如果替换了具有键'key'的资源,则该属性不会自动更新。

感谢您的回复,

2 个答案:

答案 0 :(得分:13)

无论您是在代码还是XAML中执行此操作,静态资源都不会更新。你需要一个动态资源。

在XAML中:

<Grid x:Name="grid" Background="{DynamicResource Brush}"/>

在代码中:

grid.SetResourceReference(Grid.BackgroundProperty, "Brush");

答案 1 :(得分:1)

请注意,Silverlight中不提供DynamicResource;它只在WPF中(Silverlight只有StaticResource)。

由于您将问题标记为Silverlight和WPF,我怀疑您可能正在寻找适用于两者的解决方案。如果是这种情况,您可能希望使用数据绑定而不是资源,因为您需要更新属性以响应更改。