摘要:StaticResource vs. DynamicResource
翻譯自:http://www.codeproject.com/Articles/393086/WPF-StaticResource-vs-DynamicResource
簡單地說,
StaticResource 呼叫第一次物件,就一直使用到結束,DynamicResource 則是物件每用到一次就去取得一次。
因此 DynamicResource 會比較耗資源。
若以 static 方式呼叫,需先在 XAML 裡面定義好,之後才呼叫的到,例:
<Window.Resources>
<RadialGradientBrush x:Key="myGradientBrush">
<GradientStop Color="Green" Offset="0"/>
<GradientStop Color="Blue" Offset="2"/>
</RadialGradientBrush>
</Window.Resources>
先定義好之後,就可以 static 的方式去呼叫:
<Grid Background="{StaticResource myGradientBrush}"></Grid>
或是以 dynamic 的方式呼叫:
<Grid Background="{DynamicResource myGradientBrush}"></Grid>
若是以 dynamic 的方式呼叫,之後就可以像下面這樣,在 C# code 去改變其內容,
RadialGradientBrush radialGradientBrush = new RadialGradientBrush( Colors.Orange, Colors.Pink);
this.Resources["myGradientBrush"] = radialGradientBrush;