wpf中加载图片代码优化方案

wpf中加载图片代码优化方案

ID:35274425

大小:23.08 KB

页数:8页

时间:2019-03-22

wpf中加载图片代码优化方案_第1页
wpf中加载图片代码优化方案_第2页
wpf中加载图片代码优化方案_第3页
wpf中加载图片代码优化方案_第4页
wpf中加载图片代码优化方案_第5页
资源描述:

《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

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).初始加载时,只加载部分图片并显示

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。