Проблема с изображением с сервера в Silverlight - PullRequest
0 голосов
/ 20 октября 2010

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

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

Спасибо.

1 Ответ

1 голос
/ 21 октября 2010

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

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();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...