Проблема динамической загрузки изображений в Silverlight - PullRequest
2 голосов
/ 01 октября 2009

Я создаю приложение FlippingBook Silverlight и столкнулся с проблемой, которую, похоже, не могу решить.

Проблема связана с асинхронно загружаемыми изображениями. Я написал класс, который загружает изображение из веб-адреса и сохраняет его в объекте BitmapImage.

Я привязываю к этому объекту изображения источник изображения в элементе управления Silverlight. Теперь моя страница и миниатюра имеют доступ к одному и тому же свойству ImageData, в котором хранятся данные изображений.

Список миниатюр - это список, стилизованный под просмотрщик миниатюр.

И книга, и список тоже имеют один и тот же источник предметов, поэтому проблемы меня смущают.

Все работает с изображениями, загружаемыми в фоновом режиме и обновляющими пользовательский интерфейс после их загрузки ... ЗА ИСКЛЮЧЕНИЕМ первых 3 (и всегда первых 3) элементов в списке миниатюр никогда не отображаются изображения.

Это изображение, иллюстрирующее пользовательский интерфейс и проблему: альтернативный текст http://www.pcbuyersguide.co.za/picture.php?albumid=19&pictureid=895

Изображение для привязки кода на странице:

    <Image Source="{Binding ImageData}" Stretch="Fill" ImageFailed="Image_ImageFailed"/>

Изображение привязки кода на миниатюре (в стиле ListboxItem):

    <Image Stretch="Fill" Source="{Binding ImageData}"/>

Свойство:

   public BitmapImage ImageData
    {
        get { return oImageData; }
        set
        {
            if (value != this.oImageData)
            {
                this.oImageData = value;
                NotifyPropertyChanged("ImageData");
            }
        }
    }

Я проверил с изображениями, которые загружаются долго, и все это работает, но только эти первые 3, которые дают мне ад. Я не понимаю, так как предметы связаны и должны фактически быть одинаковыми.

ItemSource является наблюдаемой коллекцией. Я знаю, что не дал много информации, но я хочу попытаться сфокусировать свой вопрос. Если вам нужна дополнительная информация, я буду рад предоставить ее.

Любая помощь будет принята с благодарностью.

1 Ответ

2 голосов
/ 02 октября 2009

Оказалось, что это проблема со стилем в ItemContentStyle, который я определил. У меня была корневая сетка определенного фиксированного размера, которая, как мне кажется, не нравится серебристому свету, поэтому я вместо этого установил размер изображения и сделал некоторые другие настройки, и он, похоже, подошел.

...