If want to share Image in ResourceDictionary, there is another way except using x:Shared=”false”.

<Application.Resources>
    <BitmapImage x:Key="bitmapImage"  
UriSource="pack://application:,,,/Resource/Dock.JPG"/> <DataTemplate x:Key="dataTemplate" x:Shared="false"> <Border Background="Blue" Margin="10"> <Image Source="{StaticResource bitmapImage}"/> </Border> </DataTemplate> </Application.Resources>

Instead of creating Image as resource, create BitmapImage as resource and use as the Source of Image in DataTemplate.

Comparing it with using x:Shared=”false”, it will create 3 Image control instances but only one BitmapImage control instance.

But if we use x:Shared=”false”, it will create 3 Image control instances and 3 BitmapFrameDecode instance.