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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/391168.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/391168.shtml
英文地址,請注明出處:http://en.pswp.cn/news/391168.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深入理解InnoDB(5)-文件系統

1. 數據庫和文件系統的關系 像 InnoDB 、 MyISAM 這樣的存儲引擎都是把表存儲在文件系統上的。當我們想讀取數據的時候,這些存儲引擎會從文件系統中把數據讀出來返回給我們,當我們想寫入數據的時候,這些存儲引擎會把這些數據又寫回文件系統。…

vim捐贈_#PayItBackwards-一位freeCodeCamp畢業生如何向事業捐贈10,000美元

vim捐贈On Monday my phone suddenly started buzzing. Shawn Wang, AKA Swyx, had just tweeted about a donation hed made to freeCodeCamp.org.星期一,我的電話突然開始嗡嗡作響。 Awn Swyx的Shawn Wang剛剛在推特上發布了他對freeCodeCamp.org的捐款。 I glan…

Digital River拉來Netconcepts站臺 亞太營銷服務升級

它是大洋彼岸的一家網絡軟件下載、分銷商,很多重量級的軟件行業領軍企業都是其客戶,它一直低調摸索亞太營銷的路子,在今年九月份,它一改常態,高調宣布入華,三個月后,它帶來了最新消息&#xff1…

按下按鈕_按下

按下按鈕Updated with the latest data: 23/8/2020更新最新數據:23/8/2020 As restrictions are lifted for Laois and Offaly, difficult times are set to continue for the people of Kildare, at least for another couple of weeks, as they continue to fight…

windows中怎么添加定時任務

linux中有crontab定時任務,很方便 其實windows也有類似的 需求:定時執行python腳本 1、Windows鍵R,調出此窗口,輸入compmgmt.msc 2、 轉載于:https://www.cnblogs.com/gcgc/p/11594467.html

css設置黑體宋體等(轉)

代碼如下: .selector{ font-family:"Microsoft YaHei",微軟雅黑,"MicrosoftJhengHei",華文細黑,STHeiti,MingLiu } 說明: 加上中文名“微軟雅黑”是為了兼容opera。 MicrosoftJhengHei為微軟正黑體,STHeiti為華文黑體,Mi…

重學TCP協議(7) Timestamps 選項

1.Timestamps 選項的組成部分 時間戳選項占10個字節 kind(1字節) + length(1字節) info (8字節),其中kind8,length10,info由timestamp(TS value)和timestamp echo(TS Echo Reply)兩…

sudoku代碼_首席執行官可以編碼嗎? 在星期六晚上坐在酒吧時,從頭開始觀看Netlify首席執行官的Sudoku應用程序代碼

sudoku代碼Netlify CEO Matt Biilmann live-codes a Sudoku app using Netlify in this tutorial video. Matt shows how simple and quick it can be to create a working app using the JAMstack.在本教程視頻中,Netlify CEO Matt Biilmann使用Netlify對Sudoku應用…

c++ 時間序列工具包_我的時間序列工具包

c 時間序列工具包When it comes to time series forecasting, I’m a great believer that the simpler the model, the better.關于時間序列預測,我堅信模型越簡單越好。 However, not all time series are created equal. Some time series have a strongly defi…

bash 的相關配置

bash 參數自動補全 請安裝 bash-completion bash 提示符 說明:參考文檔 1. 簡潔風格 if [[ ${EUID} 0 ]] ; then PS1\[\033[01;32m\][\[\033[01;35m\]\u\[\033[01;37m\] \w\[\033[01;32m\]]\$\[\033[00m\] else PS1\[\033[01;32m\][\u\[\033[01;37m\] \w\[\033[01;…

LINUX系統安裝和管理

目錄 一.應用程序 對比應用程序與系統命令的關系 典型應用程序的目錄結構 常見的軟件包裝類型 二.RPM軟件包管理 1.RPM是什么? 2.RPM命令的格式 查看已安裝的軟件包格式 查看未安裝的軟件包 3.RPM安裝包從哪里來? 4.掛載的定義 掛載命令moun…

sql基礎教程亞馬遜_針對Amazon,Apple,Google的常見SQL面試問題

sql基礎教程亞馬遜SQL is used in a wide variety of programming jobs. Its important to be familiar with SQL if you are going to be interviewing soon for a software position. This is especially true if you are going to interview at a top tech company such as …

leetcode 1720. 解碼異或后的數組(位運算)

未知 整數數組 arr 由 n 個非負整數組成。 經編碼后變為長度為 n - 1 的另一個整數數組 encoded ,其中 encoded[i] arr[i] XOR arr[i 1] 。例如,arr [1,0,2,1] 經編碼后得到 encoded [1,2,3] 。 給你編碼后的數組 encoded 和原數組 arr 的第一個元…

adobe 書簽怎么設置_讓我們設置一些規則…沒有Adobe Analytics處理規則

adobe 書簽怎么設置Originally published at Analyst Admin.最初發布于Analyst Admin 。 In my experience working with Adobe Analytics, I’ve found that Processing Rules help in some cases, but oftentimes they create more work. I try to avoid using Processing R…

詳解linux下安裝python3環境

1、下載python3.5源碼包首先去python官網下載python3的源碼包,網址:https://www.python.org/ 進去之后點擊導航欄的Downloads,也可以鼠標放到Downloads上彈出菜單選擇Source code,表示源碼包,這里選擇最新版本3.5.2&am…

詳解spl_autoload_register()函數

http://blog.csdn.net/panpan639944806/article/details/23192267 轉載于:https://www.cnblogs.com/maidongdong/p/7647163.html

上海區塊鏈會議演講ppt_所以您想參加會議演講嗎? 這是我的建議。

上海區塊鏈會議演講pptYou’ve attended a few conferences, watched a lot of presentations, and decided it’s time to give a talk of your own! As someone who has both given talks at conferences, and sat on the proposal review board for others, I’m here to te…

重學TCP協議(8) TCP的11種狀態

TCP的11種狀態 為了邏輯更加清晰,假設主動打開連接和關閉連接皆為客戶端,被動打開連接和關閉連接皆為服務端 客戶端獨有的:(1)SYN_SENT (2)FIN_WAIT1 (3)FIN_WAIT2 &…

肯尼亞第三方支付_肯尼亞的COVID-19病例正在Swift增加,我們不知道為什么。

肯尼亞第三方支付COVID-19 cases in Kenya are accelerating rapidly. New cases have increased 300% month-over-month since April of this year while global and regional media have reported on the economic toll of stringent lock-down measures and heavy-handed go…

JVM命令

1、jps 查看所有虛擬機進程 -v 虛擬機啟動時JVM參數 -l 執行主類全名 2、jstat 顯示本地或遠程類裝載、內存、垃圾回收、JIT編譯等運行數據(性能問題定位工具首選) 格式:jstat [-option] vmid ms count (示例&a…