1) Добавьте DrawingImage.xaml в проект и установите для его свойств «BuildAction = Content» и «Copy Always». В противном случае вы можете динамически загружать XAML извне, так как логика, которую я собираюсь объяснить, будет работать и дляoose-xaml.
2) Напишите конвертер для преобразования URI XAML в UIELement, в вашем случае это всегда будет DrawingImage
public class FileToUIElementConverter :IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
FileStream fileStream = new FileStream((string)parameter, FileMode.Open);
return XamlReader.Load(fileStream) as DrawingImage;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
3) Напишите XAML, как показано ниже
<Window.Resources>
<local:FileToUIElementConverter x:Key="uriToUIElementConverter"/>
</Window.Resources>
<Grid>
<Image Stretch="Fill" Source="{Binding Converter={StaticResource uriToUIElementConverter},ConverterParameter=ImageDrawing.xaml}"/>
</Grid>