.net 如何在代码隐藏中使用DynamicSource?

.net 如何在代码隐藏中使用DynamicSource?,.net,wpf,resources,.net,Wpf,Resources,我希望能够以编程方式将属性设置为动态资源 myControl.Property = this.Resource[key] 不是有效响应,因为如果替换了键为“key”的资源,则属性不会自动更新 myControl.Property = this.Resource[key] 感谢您的回复,无论您是使用代码还是XAML,静态资源都不会更新。你需要一个动态的资源 在XAML中: <Grid x:Name="grid" Background="{DynamicResource Brush}"/&

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

myControl.Property = this.Resource[key]
不是有效响应,因为如果替换了键为“key”的资源,则属性不会自动更新

myControl.Property = this.Resource[key]

感谢您的回复,

无论您是使用代码还是XAML,静态资源都不会更新。你需要一个动态的资源

在XAML中:

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

请注意,动态资源在Silverlight中不可用;它仅在WPF中(Silverlight仅具有StaticResource)


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

不,您错了,如果资源被另一个资源更改,静态资源将更新目标。如果资源的属性发生更改,StaticResource不会更新,仅此而已。抱歉,您错了。静态资源的全部要点是在编译时解析它们。你可以做一个简单的测试来证明这一点。不可能,我对自己如此自信,我怎么能相信!!!对不起,伙计,也许正确的问题是“如何在后面的代码中使用DynamicSource所以:p”是的,我不知道DynamicSource在SL中不可用,我更新了标记,你对WPF有什么想法吗?Nicolas,我不明白。我没有回答你关于WPF的问题吗?你告诉我使用数据绑定而不是资源,但是我如何在代码背后使用数据绑定的情况下,将依赖项属性绑定到资源(这样当资源被新资源替换时,我的DP就会更新)。我看不出我怎么能用装订来完成这件事。@Nicolas:再读一遍我的答案。我根本没这么说。我建议使用
SetResourceReference
,这正是您所需要的。更改具有指定键的资源时,资源引用将确保更改应用于相关的依赖项属性。