我使用以下代码将数据库(compact sql)中的图像绑定到我的图像控件:
<Image MaxHeight="100" Stretch="UniformToFill">
<Image.Source>
<BitmapImage DecodePixelHeight="200"
StreamSource="{Binding ImageData}" />
</Image.Source>
</Image>
使用BitmapImage
的原因是因为我发现当我使用图像时,显示的缩略图非常大,以至于减慢了程序的速度。我打算在bitmapimage中使用DecodePixelHeight
属性允许我使用较小的缩略图大小,从而使我的程序不会变慢。
将此绑定到我的图片时遇到的问题是错误,说我没有正确设置StreamSource
。我有一种感觉,这是因为我的图像存储为数据库中的字节(手工转换),而BitmapImage
(与标准Image
不同)不支持自动转换为图像格式。 />
它是否正确?如果是这样,我只需要实现转换器吗?
答案 0 :(得分:1)
您遇到的问题很可能与ImageData
不是Stream
类型的事实有关,StremSource
属性实际上需要Byte[] imagesBytes = GetBytesOfImageFromDB();
ImageData= new MemoryStream(imagesBytes);
。
假设代码可能是这样的:
ImageData
假设在这种情况下Stream
模型查看器属性的类型为{{1}}。
希望这有帮助。