Установка свойства источника при привязке растрового изображения к базе данных - PullRequest
0 голосов
/ 26 января 2012

Я использую следующий код для привязки изображения из моей базы данных (compact sql) к своему управлению изображениями:

<Image MaxHeight="100" Stretch="UniformToFill">
    <Image.Source>
        <BitmapImage DecodePixelHeight="200" 
             StreamSource="{Binding ImageData}" />
    </Image.Source>
</Image>

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

Проблема, возникающая при привязке этого к моему изображению, заключается в ошибке, говорящей о том, что я неправильно установил StreamSource. У меня такое чувство, что это потому, что мое изображение хранится в базе данных в байтах (преобразовано заранее) и что BitmapImage (в отличие от стандартного Image) не поддерживает автоматическое преобразование в формат изображения.
Это правильно? Если это так, мне просто нужно реализовать конвертер?

1 Ответ

1 голос
/ 26 января 2012

Проблема, с которой вы сталкиваетесь, скорее всего, связана с тем фактом, что ваш ImageData не относится к типу Stream, что фактически требуется для свойства StremSource.

Гипотетический код может выглядеть примерно так:

Byte[] imagesBytes = GetBytesOfImageFromDB();
ImageData= new MemoryStream(imagesBytes); 

Предполагая, что в этом случае свойство ImageData просмотра модели имеет тип Stream.

Hopeэто помогает.

...