0

我有一个 UserControl,它定义了一个像这样的网格:

<Grid ClipToBounds="True"
      x:Name="GHeader"
      Grid.Row="0"
      Grid.Column="0"
      Background="{DynamicResource BrushRoomHeaderBackground}"
      >

ResourceDictionary 中定义了以下样式,它们在开始时加载:

<SolidColorBrush x:Key="BrushRoomHeaderBackground" 
                 Color="{DynamicResource ColorPassive}"
                 /> 

<Color x:Key="ColorPassive">#FF9499C0</Color>

应该使用 DynamicResource 绑定还是 StaticResource ?这里可能有任何内存泄漏吗?

4

1 回答 1

1

正如 Manish 所解释的,您应该查看他的链接,以更好地了解静态资源和动态资源之间的区别。

短篇小说是:

  • 在加载 XAML 期间解析静态资源(即使在应用程序运行之前也仅解析一次)
  • DynamicResource 在运行时被解析,并且会在源字典改变时更新

所以对你来说,问题是:你是否打算在运行时更新你的字典,或者至少你的资源是在网格声明之后定义的?如果没有,为了清晰和性能,更喜欢 StaticResource。

于 2013-02-22T07:47:13.790 回答