Проблема с изображением с сервера в Silverlight

#.net #visual-studio-2010 #silverlight-4.0

#.net #visual-studio-2010 #silverlight-4.0

Вопрос:

У меня проблема с изображением при попытке его отобразить. В моем проекте у меня есть класс, у которого есть атрибут «public String Image». У меня есть локальный веб-сервер, который возвращает мне коллекцию класса. Когда я смотрю в режиме отладки на атрибут изображения, он показывает мне соответствующий URL (если я вставляю URL в браузер, он показывает мне изображение), но изображение не отображается. Если вместо этого я добавлю любой URL из изображения из Интернета, оно покажет мне изображение. Я не понимаю, почему изображение с локального сервера не отображается в приложении silverlight, но в браузере оно есть. Код, используемый в Silverlight, является:

 <Image Name="photoImage" Source="{Binding Image}" Margin="30,10,30,10" />
  

Спасибо.

Ответ №1:

Попробуйте использовать этот конвертер:

 public class RelativeImageSourceConverter : IValueConverter
{

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        if (value == null) { return null; }
        var originalString = value.ToString();
        if (!Uri.IsWellFormedUriString(originalString, UriKind.RelativeOrAbsolute)) { return null; }
        var imageUri = new Uri(originalString, UriKind.RelativeOrAbsolute);
        if (!imageUri.IsAbsoluteUri)
        { 
            var hostUri = Application.Current.Host.Source;
            imageUri = new Uri(hostUri, originalString);
        }
        var image = new BitmapImage(imageUri);
        return image;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}
  

Комментарии:

1. Спасибо, с небольшой модификацией в другом месте это сработало.