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>
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…