1. 程式人生 > >WPF的Image控制元件使用BitmapImage的資源佔用問題

WPF的Image控制元件使用BitmapImage的資源佔用問題

    在WPF中,想要使用Image控制元件,並將圖片匯入Image控制元件中,顯示在介面上。因此可以通過BitmapImage作為Image控制元件的源。

    因此,可以這樣做:

 BitmapImage bitmapImage = new BitmapImage(); //初始化BitmapImage類的一個新例項

 Image image1 = new Image(); //定義一個Image控制元件

string strPath = "D:\\mImage.png";//圖片所在的位置

bitmapImage.BeginInit(); //表示BitmapImage初始化開始

bitmapImage.UriSource = new Uri(strPath);//獲取或設定BitmapImage的Uri源

bitmapImage.EndInit();//表示BitmapImage初始化結束

image1.Source = bitmapImage;//將image1控制元件的源指定為bitmapImage

    按照上訴方法可以將圖片顯示到Image控制元件中,但是會存在問題,比如此時無法對顯示的圖片做其他操作,比如移動、重新命名、刪除等。就這好比windows作業系統中,無法對當前開啟的word文件進行重新命名、刪除、移動等,因為資源正被佔用。

    解決方案:

    將圖片資源載入到快取中,這樣就不會造成資源的佔用,便可以實現對Image控制元件載入圖片的其他操作。

    方法很簡單,即在給BitmapImage指定Uri源的時候,增加語句:bitmapImage.CacheOption = BitmapCacheOption.Onload; 在載入時,將整個影象快取到記憶體中。

程式碼修改為:

BitmapImage bitmapImage = new BitmapImage(); //初始化BitmapImage類的一個新例項

 Image image1 = new Image(); //定義一個Image控制元件

string strPath = "D:\\mImage.png";//圖片所在的位置

bitmapImage.BeginInit(); //表示BitmapImage初始化開始

bitmapImage.CacheOption = BitmapCacheOption.Onload;

bitmapImage.UriSource = new Uri(strPath);//獲取或設定BitmapImage的Uri源

bitmapImage.EndInit();//表示BitmapImage初始化結束

image1.Source = bitmapImage;//將image1控制元件的源指定為bitmapImage


相關推薦

WPF的Image控制元件BitmapImage以及Uri的資源佔用問題

今兒沒幹啥活兒,花了一天時間把這個問題研究了一下。通過BitmapImage的Clone方法,保持使用Uri,同樣可以解決問題。     場景: WPF下用Image控制元件展示圖片; 控制元件的圖片源自然選用BitmapImage;  BitmapImage通過Uri物

WPF的Image控制元件資源切換

首先需要做一個資源類,把圖片資源放到這個類裡。 然後需要一個轉換Converter類。 public object Convert(object value, Type targetType, object parameter, System.Globalization.Cultu

WPF的Image控制元件使用BitmapImage資源佔用問題

    在WPF中,想要使用Image控制元件,並將圖片匯入Image控制元件中,顯示在介面上。因此可以通過BitmapImage作為Image控制元件的源。     因此,可以這樣做:  BitmapImage bitmapImage = new BitmapImage(

WPF 從程式集中檢索圖片資源stream給Image控制元件使用

原文: WPF 從程式集中檢索圖片資源stream給Image控制元件使用 // 獲取當前程式集 Assembly assembly = Assembly.GetAssembly(GetType()); //

android設定控制元件的字型和背景(通過資源引用)筆記

所有View的子類都具有的一個方法,設定背景顏色: int resid = getResources().getColor(R.color.background_green_low) setBackgroundColor(int resid); ------------

VC++圖片控制元件(Picture Control)顯示資源點陣圖(BMP)、檔案點陣圖(BMP)、其它格式檔案圖片(JPG\PNG\BMP)的方法

在VC++ MFC程式設計中,我們常使用Picture Control圖片控制元件來顯示影象。下面簡單歸納幾種顯示不同的方式: 第一種、資源點陣圖方式顯示BMP圖片 如果要顯示的是一張BMP點陣圖,則可以採用資源點陣圖方式,具體步驟如下: (1)將BMP檔案拷貝到工程的r

Android自定義控制元件之入門篇---整理網路上的資源

前言, 我的視訊系列 http://edu.csdn.net/course/detail/2741, 一起來學習Android… 本篇部落格主要是想要講解一下自定義控制元件如何入門,其中有好多資料資源來源自網路,綜合了網路上一些有些的博文

Android的ToggleButton控制元件隱藏提示文字或清除提示文字佔用空間的解決辦法

今天測試妹子說有個頁面的一個開關顯示跑偏了,一個Android4.4.4顯示跑偏了,一個Android7.0的手機顯示正常。 當時我就不開心了,是何方妖孽在作祟?看了下程式碼,之前是在android7.0的手機上開發的,選用了ToggleB

解決安裝Android Studio 安裝佔用c盤大量控制元件問題

1.移動.AndroidStudio編輯idea.properties檔案如下idea.config.path=E:/.AndroidStudio3.0/configidea.system.path=E:/.AndroidStudio3.0/system2.移動.Androi

com4j 呼叫控制元件後,解決無法釋放控制元件資源的方法

com4j的使用方法參見 http://blog.csdn.net/nieou/article/details/9952031 這裡討論下com4j釋放控制元件資源的問題。 com4j在Com4jObject介面中提供了一個dispose方法,用於釋放控制元件資源。但是實際

Android如何獲取fragment裡的webview控制元件資源

先大致講一下專案的框架,模仿京東分類頁面。左側listview,右側一個fragment內嵌webview。當我在MainActivity的onCreate()方法中獲取webview資源,編譯執行APP一直是崩潰。debug找到了原因--空指標異常。仔細分析發現是find

VS2015建立類庫專案後新增不了WPF資源字典,視窗,使用者控制元件處理辦法

開啟專案工程檔案在PropertyGroup標籤最後加上下面3行: <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}&l

(七十三)c#Winform自定義控制元件-資源載入窗體

前提 入行已經7,8年了,一直想做一套漂亮點的自定義控制元件,於是就有了本系列文章。 GitHub:https://github.com/kwwwvagaa/NetWinformControl 碼雲:https://gitee.com/kwwwvagaa/net_winform_custom_control.

My97DatePicker(WdatePicker)日期控制元件用法

WdatePicker[html] view plain copy print? <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!-- 它的官網是http://www.my97.n

QT獲取控制元件的內容去傳參的小發現

1://處理文字框(內容是一個連續的字串)的方法(不能直接用文字框的內容去傳參,//否則會有意想不到的錯誤發生,需要利用先拷貝到陣列,然後利用陣列去傳參), #include <QStringList> #include <QString> int arg

qt 小控制元件之textEdit

獲取 textedit 的文字內容:QString text = ui->textEdit->toPlainText(); 設定textedit 的文字內容:ui->textEdit->append(“lkf”);此方法追加內容是換行追加 char b[10]

ext3.0 樹控制元件處理

前幾個月,一直在學習ext,並用它做了個專案,其中涉及到大量的樹列表的建立,動態修改。現在不忙了,總結出來: //建立節點 root為樹的根節點,node當前要加入的節點,nodeArray所有的樹節點(可以不包括根節點) checked表示樹節點是否加入check框,帶check框的節點都

高階控制元件ListVie的使用

activity_main.xml 檔案(配置檔案) <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http:

高階控制元件 自動提示文字框與下拉列表

一、 高階控制元件使用步驟 1 、獲取資料 2 、建立介面卡 3 、繫結介面卡 二、自動提示文字框 1 、AutoCompleteTextView(單一提示) android:completionThreshold=”1” 2 、MultiAutoCompleteTextV

控制元件TextView與EditText的簡單運用

文字框(TextView) 簡介 TextView直接繼承View,作用就是在介面上顯示文字(類似於Swing中的JLabel),同時它還是EditText、Button兩個UI元件類的父類。 另外Android關閉了它的文字編輯功能,如果想編輯內容,則可以使用EditText。