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的文件夹当打开一对文件缩略图的时候也很慢。