如何正确显示BitmapImage?
How to display BitmapImage correctly?
我想在 ListBox 中显示来自 SQL 服务器数据库的一些图像。我将图像从二进制转换为 BitmapImage
然后我添加如下:
foreach (var screenshot in screenshots)
{
ImageListBox.Items.Add(screenshot);
}
输出如下所示:
如何才能正确显示图像?
编辑:这是我的 xaml 代码:
<ListBox Name="ImageListBox">
</ListBox>
编辑 2:
这是我转换图像的方式:
public BitmapImage ConvertImage(byte[] value)
{
if (value != null && value.Length > 0)
{
using (MemoryStream stream = new MemoryStream(value))
{
BitmapImage image = new BitmapImage();
image.BeginInit();
image.StreamSource = stream;
image.EndInit();
return image;
}
}
return null;
}
这是我的查询:
var screenshots = context
.Error.Include(_ => _.ErrorScreenshots)
.First(_ => _.Id == selectedError.Id)
.Error
.Select(_ => new { Image = ConvertImage(_.Screenshot) })
.ToArray();
ListBox 将默认显示使用其 toString() 方法的对象。在您的情况下,您最终得到 "Image = System.Windows.Media.Bitmap.Image"
为了指示每个项目都应显示为 Image 对象,请指定一个 ItemTemplate。
<ListBox Name="ImageListBox">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" >
<Image Source="{Binding}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我想在 ListBox 中显示来自 SQL 服务器数据库的一些图像。我将图像从二进制转换为 BitmapImage
然后我添加如下:
foreach (var screenshot in screenshots)
{
ImageListBox.Items.Add(screenshot);
}
输出如下所示:
如何才能正确显示图像?
编辑:这是我的 xaml 代码:
<ListBox Name="ImageListBox">
</ListBox>
编辑 2:
这是我转换图像的方式:
public BitmapImage ConvertImage(byte[] value)
{
if (value != null && value.Length > 0)
{
using (MemoryStream stream = new MemoryStream(value))
{
BitmapImage image = new BitmapImage();
image.BeginInit();
image.StreamSource = stream;
image.EndInit();
return image;
}
}
return null;
}
这是我的查询:
var screenshots = context
.Error.Include(_ => _.ErrorScreenshots)
.First(_ => _.Id == selectedError.Id)
.Error
.Select(_ => new { Image = ConvertImage(_.Screenshot) })
.ToArray();
ListBox 将默认显示使用其 toString() 方法的对象。在您的情况下,您最终得到 "Image = System.Windows.Media.Bitmap.Image"
为了指示每个项目都应显示为 Image 对象,请指定一个 ItemTemplate。
<ListBox Name="ImageListBox">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" >
<Image Source="{Binding}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>