欢迎来到天天文库
浏览记录
ID:35274425
大小:23.08 KB
页数:8页
时间:2019-03-22
《wpf中加载图片代码优化方案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、方案1.WPF异步加载BitmapImage当你在WPF主线程中时不时需要加载图片时,界面上的Animation会因为IO操作而卡壳,要想保持动画的流畅就必须将IO操作放到后台线程中操作,如下:privatevoidChangeImage(){Imageimage=newImage();newThread(newThreadStart(()=>{BitmapImagebitmap=newBitmapImage();bitmap.BeginInit();bitmap.UriSource=newUr
2、i(images[index++%images.Count]);bitmap.CacheOption=BitmapCacheOption.OnLoad;bitmap.EndInit();bitmap.Freeze();Dispatcher.BeginInvoke((Action)(()=>{image.Source=bitmap;image.Stretch=Stretch.UniformToFill;TransitionBox.Content=image;}));})).Start();}方案2
3、.WPF中加载高分辨率图片性能优化在最近的项目中,遇到一个关于WPF中同时加载多张图片时,内存占用非常高的问题。问题背景:在一个ListView中同时加载多张图片,注意:我们需要加载的图片分辨率非常高。代码XAML:4、="35"Margin="0,10"Click="Button_Click"/>5、crollViewerVerticalScrollBarVisibility="Auto"HorizontalScrollBarVisibility="Hidden">6、irtualizationMode="Recycling"VirtualizingPanel.IsVirtualizing="True"/>C#:publicpartialclassMainWindow:Window{publicMainWindow(){InitializeComponent();}privatevoidButton_Click(objectsender,R
4、="35"Margin="0,10"Click="Button_Click"/>5、crollViewerVerticalScrollBarVisibility="Auto"HorizontalScrollBarVisibility="Hidden">6、irtualizationMode="Recycling"VirtualizingPanel.IsVirtualizing="True"/>
5、crollViewerVerticalScrollBarVisibility="Auto"HorizontalScrollBarVisibility="Hidden">
6、irtualizationMode="Recycling"VirtualizingPanel.IsVirtualizing="True"/>
7、outedEventArgse){lvImages.Items.Clear();//Imagefolderlocation:D:Picsstring[]files=System.IO.Directory.GetFiles(@"D:Pics");Listmodels=newList();foreach(varpathinfiles){BitmapImageimage=newBitmapImage();image.Begin
8、Init();image.UriSource=newSystem.Uri(path);image.EndInit();image.Freeze();models.Add(newImageSourceModel(){ImageSource=image});}lvImages.ItemsSource=models;}}publicclassImageSourceModel{publicImageSourceImageSource{get;set;}}优化方案:(1).初始加载时,只加载部分图片并显示
此文档下载收益归作者所有