Моим образа продолжает бросать эту ошибку:IValueConverter То есть предполагается заморозить изображение для перекрестного связывания поточно не работает связывание
Must create DependencySource on same Thread as the DependencyObject.
Я написал IValueConverter
, что я думал, что бы решить, но оказывается это не так.
public class FrozenImage : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
ImageSource image = value as ImageSource;
if (image != null)
{
if (image.Dispatcher != null)
{
if (image.Dispatcher.CheckAccess())
{
ImageSource returnImage = new BitmapImage();
returnImage = image;
returnImage.Freeze();
return returnImage;
} else return image.Dispatcher.Invoke(() => Convert(value, targetType, parameter, culture));
} else return image;
} else return null;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}
Я пропустил что-то или это просто невозможно?
Также попробовал упрощенную версию, так как диспетчеры должны не потребуются, и это имеет те же ошибки, а также:
public class FrozenImage : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
ImageSource image = value as ImageSource;
if (image != null)
{
ImageSource returnImage = image.Clone();
returnImage.Freeze();
return returnImage;
} else return null;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}