WPF中删除打开过的图片
在WPF中,當(dāng)我們刪除打開(kāi)過(guò)的圖片時(shí),往往會(huì)遇到"...無(wú)法刪除,文件正在被另一個(gè)進(jìn)程使用"的異常。即使當(dāng)前文件是打開(kāi)后關(guān)閉過(guò)的也不行。
這個(gè)問(wèn)題的原因很簡(jiǎn)單,是因?yàn)閃PF的緩存策略導(dǎo)致圖片被鎖定了,解決的方式不是用默認(rèn)的ImageSource的構(gòu)造方法,改用如下方式:
????ImageSource getImage(string file)
????{
????????var bmp = new BitmapImage();
????????bmp.BeginInit();
????????bmp.CacheOption = BitmapCacheOption.OnLoad;????????//這一行很重要
????????bmp.UriSource = new Uri(file);
????????bmp.EndInit();
????????return bmp;
????}
這種方式本身并沒(méi)有什么問(wèn)題,但今天發(fā)現(xiàn)了更簡(jiǎn)單的一個(gè)方法,只要一行代碼即可:
????BitmapFrame.Create(new Uri(file), BitmapCreateOptions.None, BitmapCacheOption.OnLoad);
這里記錄一下,以后主要就用這種方式了。
posted on 2017-10-10 15:07 NET未來(lái)之路 閱讀(...) 評(píng)論(...) 編輯 收藏轉(zhuǎn)載于:https://www.cnblogs.com/lonelyxmas/p/7645721.html
總結(jié)
以上是生活随笔為你收集整理的WPF中删除打开过的图片的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql数据库部分操作指令
- 下一篇: asp.net读取用户控件,自定义加载用