代码之家  ›  专栏  ›  技术社区  ›  Nicolas Dorier

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

  •  6
  • Nicolas Dorier  · 技术社区  · 16 年前

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

    myControl.Property = this.Resource[key]
    

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

    谢谢你的回复,

    2 回复  |  直到 15 年前
        1
  •  15
  •   Tim Cooper    14 年前

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

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

    代码:

    grid.SetResourceReference(Grid.BackgroundProperty, "Brush");
    
        2
  •  1
  •   KeithMahoney    16 年前

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

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

    推荐文章