Установка свойства источника Image в Silverlight с помощью конвертера - PullRequest
0 голосов
/ 02 июля 2011

У меня есть страница, на которой я хочу отображать изображения в шаблоне элемента управления.Для этого я получаю только имя изображения для показа.Поэтому я использую конвертер для возврата BitmapImage, например:

return new BitmapImage(new Uri(value.ToString(), UriKind.RelativeOrAbsolute));   

в привязке XAML:

Image Source="{Binding ThumbNail,Converter={StaticResource MapImagePath}}"/>

По какой-то причине я не могу увидеть изображение.

Я изменил расширение своего изображения на .jpeg, но все еще не работает.

Я делаю что-то неправильно или предлагаю мне, если я ошибаюсь.Спасибо.

Ответы [ 3 ]

1 голос
/ 02 июля 2011

Измените ваш конвертер так, чтобы он возвращал экземпляр BitmapImage. Ваш конвертер в настоящее время возвращает строку или Uri, однако фактический тип свойства Source равен ImageSource.

Преобразование строки в BitmapImage - это волшебство, которое делает для нас XamlParser, но когда мы передаем значение с помощью конвертера, нам нужно придать ему правильный тип.

0 голосов
/ 30 декабря 2013
  1. Сначала измените свойство изображения на содержимое. [Щелкните правой кнопкой мыши свое изображение, перейдите к свойству и измените действие сборки с ресурса на содержимое

  2. Теперь предположим, что нам нужен файл "/Resources/Images/1.png".

Введите код, подобный приведенному ниже, в вашем конвертере.

public object Convert(object value, Type targetType, object parameter,  System.Globalization.CultureInfo culture)
{
    BitmapImage bitmap = new BitmapImage();
    Uri uri = new Uri(@"Resources/Images/1.png", UriKind.Relative);
    bitmap .SetSource(Application.GetResourceStream(uri).Stream);
    return bitmap ;
}
0 голосов
/ 02 июля 2011

Вы можете попробовать использовать событие ImageFailed, чтобы проверить, не возникает ли какое-либо исключение при загрузке изображения.Обычно вы получаете AG_E_NETWORK_ERROR, если при загрузке изображений из Интернета возникают какие-либо проблемы с сетью.

Я сталкивался с этой проблемой при запуске приложения Silverlight из файловой системы, которая по умолчанию в Visual Studio 2010 использует встроенный веб-сервер.Я переместил веб-приложение хостинга на локальный сервер IIS, и тогда изображения стали видны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...