У меня есть это в настоящее время работает для образа WPF с привязкой к данным:
<Image Source="{Binding ThumbFile}" />
Простое достаточно.
Теперь, добавляя кеширование в это изображение (я хочу иметь возможность манипулировать / удалятьлокальный файл после его загрузки).Я обнаружил, что вы можете добавить CacheOption = "OnLoad" к тегу внутри.
<Image>
<Image.Source>
<BitmapImage UriSource="{Binding Path=ThumbFile, Converter={StaticResource myConverter2}}" />
</Image.Source>
</Image>
Затем мне нужно было иметь конвертер для преобразования локального файла в BitmapImage.
<local:LocalUriToImageConverter x:Key="myConverter2"/>
и
public class LocalUriToImageConverter : System.Windows.Data.IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == null)
{
return null;
}
if (value is string)
{
value = new Uri((string)value);
}
if (value is Uri)
{
System.Windows.Media.Imaging.BitmapImage bi = new System.Windows.Media.Imaging.BitmapImage();
bi.BeginInit();
//bi.DecodePixelWidth = 80;
bi.DecodePixelHeight = 60;
bi.UriSource = (Uri)value;
bi.EndInit();
return bi;
}
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new Exception("The method or operation is not implemented.");
}
}
По некоторым причинам это даже не начинает работать.Там нет ошибок, но контроль не кажется связанным.Точки останова как в свойстве get свойства ThumbFile, так и в Converter не достигаются, даже если в элементе управления создано много экземпляров.Переключение обратно на другой тег Image Source работает нормально.