日期:2014-05-17  浏览次数:21395 次

WPF在ListBox中显示图片响应慢,怎么办?
如题,当显示几张图片的时候速度还行,但是当显示100张图片(图片缩略图也不行)的时候反应超慢,而且PF使用率一直是1.7G左右,除非关闭程序才可以降下来。加载图片代码如下

for (int i = 0; i < 100; i++){
  Image image = new Image();
  image.Width = 100;
  image.Height = 90;
  BitmapImage bi = new BitmapImage();
  bi.BeginInit();
  bi.CacheOption = BitmapCacheOption.None;
  bi.CreateOptions = BitmapCreateOptions.DelayCreation;
  bi.UriSource = new Uri(thnumbnailPath, UriKind.RelativeOrAbsolute);
  bi.EndInit();
  image.Source = bi;
  bi.Freeze();
  image.DataContext = picPath1;
  image.ToolTip = "名称:XXX";
  audioListBox.Items.Add(image);
}

大神小神们都帮忙看看,不要让帖子沉了啊,谢了!

------解决方案--------------------
你这是在主线程加载图片当然慢,UI没法反应,建议写个ObservableCollection<Uri>,绑定到listbox上,异步加载图片。
------解决方案--------------------
绑定,然后把虚拟化打开,会好一点
试完看看是否可以接受。
不能接受再谈别的方法,不管怎么说,瞬间加载一大堆图片是很不明智的。
最简单的东西,windows的文件夹当打开一对文件缩略图的时候也很慢。