I have a Static resource defined in my WPF Windows XAML:
By default, XAML resources are shared, which means there is only one instance that is reused as often as it is referenced in XAML.
However, an Image control (as any other UI element) can only have one parent control, so can't be shared.
You can set the x:Shared
attribute to false:
<Image x:Key="MyImage" x:Shared="false" Source="../Icons/img.png" Width="16" Height="16"/>
You typically don't use UI elements as resources. An alternative would be a BitmapImage resource like this:
<Window.Resources>
<BitmapImage x:Key="MyImage" UriSource="../Icons/img.png"/>
</Window.Resources>
<Button>
<Image Source="{StaticResource MyImage}" Width="16" Height="16"/>
</Button>