假設專案預設命名空間叫 A,ImageFile.jpg 放在專案的 B 資料夾中,編譯後這個影像
資源名稱會是 A.B.ImageFile.jpg,當然前提是該影像已經設定為內嵌資源。
影像放在 .resx 檔的話 Visual Studio 預設會幫你產生一個名稱相同的類別 (例如資源
檔是 Resources.resx,Visual Studio 會自動產生一個名稱為 Resource 的靜態類別,
不過要使用 Visual Sudio 建立這個資源檔才行),而該類別中會有一個屬性供你讀取影
像 (拿剛剛的 Resouece 當範例,Resource.ImageFile 屬性就會傳回這張影像)。
※ 引述《THKLuga (東大廢柴協會會長)》之銘言:
: 同標題,小弟我剛接觸C#,編輯WIN32應用程式時
: 想要讓picturebox1在執行後載入圖檔
: 要載入的圖案放在resources裡面
: 看了看MSDN裡面沒有這樣的語法
: 使用了MSDN中將內嵌資源載入的程式碼如下:
: System.Reflection.Assembly thisExe;
: thisExe = System.Reflection.Assembly.GetExecutingAssembly();
: System.IO.Stream file =
: thisExe.GetManifestResourceStream("AssemblyName.ImageFile.jpg");
: this.pictureBox1.Image = Image.FromStream(file);
: 我把程式碼放在FromLoad 事件裡面
: 其中"AssemblyName.ImageFile.jpg"這部分似乎是要改成資源的檔案名稱
: 我把圖片檔案命名為ImageFile.jpg,上面名稱也改成ImageFile.jpg
: 執行後this.pictureBox1.Image = Image.FromStream(file);這行程式出問題
: 原因是傳回值為NULL...應該是找不到檔案
: 請問是哪裡出問題了呢?
: 如果要放在.RESX資源檔裡面的話,又該如何更改程式碼呢?
: 請教各位大大了,萬分感激
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.160.71.210