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