2016-02-14 4 views
0

Моим образа продолжает бросать эту ошибку: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(); 
    } 
} 

ответ

0

Видимо, это невозможно, так как он выглядит как исключение бросает ПЕРЕД IValueConverter есть шанс выполнять свою работу ... Если кто-то знает альтернативный способ сделать это, что не требует повторения коллекции источников и установки всех изображений на замороженные, пожалуйста, дайте мне знать.