我希望能够以编程方式将属性设置为动态资源。
myControl.Property = this.Resource[key]
不是有效的响应,因为如果替换了具有键'key'的资源,则该属性不会自动更新。
感谢您的回复,
答案 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,我怀疑您可能正在寻找适用于两者的解决方案。如果是这种情况,您可能希望使用数据绑定而不是资源,因为您需要更新属性以响应更改。