所以我决定朝另一个方向前进,那就是将图片名称保存在数据库中,然后将图片复制到应用程序内的文件夹中。
while (reader.Read())
{
BitmapImage bitImg = new BitmapImage();
string fileName =
System.IO.Path.GetFileName(reader.GetString(12));
System.Windows.Controls.Image img = new
System.Windows.Controls.Image();
var impath="pack://application:,,,/TravelBuddyApp;component/images/" + fileName;
bitImg.UriSource = new Uri(impath,
UriKind.RelativeOrAbsolute);
img.Width = 100;
img.Height = 100;
img.Source = bitImg;
StackPanel sp = new StackPanel();
sp.Orientation = Orientation.Vertical;
sp.Children.Add(img);
listviewer.Items.Add(sp);
答案 0 :(得分:0)
System.Drawing.Image
是WinForms。不要在WPF应用程序中使用它。
使用从System.Window.Media.ImageSource
派生的类,例如BitmapImage
:
var bmp = new BitmapImage();
using (var memStm = new MemoryStream(imageBytes))
{
bmp.BeginInit();
bmp.StreamSource = memStm;
bmp.CacheOption = BitmapCacheOption.OnLoad;
bmp.EndInit();
}
listviewer.Items.Add(bmp);
如果listviewer
是一个ListBox或ListView,则ItemTemplate中应该有一个Image元素:
<ListBox x:Name="listviewer">
<ListBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>