2024年4月11日发(作者:)
方案异步加载BitmapImage
当你在WPF主线程中时不时需要加载图片时,界面上的Animation会因为IO操作而卡壳,要想保持动画
的流畅就必须将IO操作放到后台线程中操作,如下:
private void ChangeImage() {
Image image = new Image();
new Thread(new ThreadStart(() => {
BitmapImage bitmap = new BitmapImage();
nit();
rce = new Uri(images[index++ % ]);
ption = ;
t();
();
nvoke((Action)(() => {
= bitmap;
h = mToFill;
t = image;
}));
})).Start();
}
方案中加载高分辨率图片性能优化
在最近的项目中,遇到一个关于WPF中同时加载多张图片时,内存占用非常高的问题。
问题背景:
在一个ListView中同时加载多张图片,注意:我们需要加载的图片分辨率非常高。
代码XAML:
HorizontalScrollBarVisibility="Hidden">
lizationMode="Recycling" ualizing="True"/> C#: public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void Button_Click(object sender, RoutedEventArgs e) { (); // Image folder location: D:Pics string[] files = es(@"D:Pics"); List foreach(var path in files) { BitmapImage image = new BitmapImage(); nit(); rce = new (path); t(); (); (new ImageSourceModel() { ImageSource = image }); } ource = models; } }


发布评论