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 が説明したように、静的リソースと動的リソースの違いをよりよく理解するには、彼のリンクを参照する必要があります。

短編小説は次のとおりです。

  • StaticResource は、XAML の読み込み中に解決されます (アプリケーションの実行前でも 1 回のみ)。
  • DynamicResource は実行時に解決され、ソース辞書が変更された場合に更新されます

ですから、質問は次のとおりです。実行時に辞書を更新する予定でしたか、または少なくともグリッド宣言の後にリソースが定義されていますか? そうでない場合は、明確さとパフォーマンスのために StaticResource を優先してください。

于 2013-02-22T07:47:13.790 に答える