- XAML resources (brushes, styles)
- data files
It is assigned to the property during the loading of the XAML and no need for application to run. It is assigned only once.
DynamicResource
It is lookup for the resource in runtime.
You see in this image static resource is loaded during design XAML:
XAML:
<Window x:Class="WpfApplication4.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<SolidColorBrush x:Key="brush" Color="Red" />
</Window.Resources>
<Grid>
<Grid.Resources>
<SolidColorBrush x:Key="bgcolor" Color="Green"/>
</Grid.Resources>
<TextBlock x:Name="txt" Background="{StaticResource bgcolor}" Margin="113,92,145,129">StaticResource</TextBlock>
<Button x:Name="btn" Content="Dynamic Resource" HorizontalAlignment="Left" VerticalAlignment="Top" Width="114" Click="Button_Click"/>
</Grid>
</Window>
C# Code:
this.btn.SetResourceReference(BackgroundProperty,
"brush");
Dynamic resource is loaded in runtime