2015-12-14 34 views
0

如何從C#桌面應用程序的\ Resources文件夾中獲取特定圖像(作爲Stream)?如何從資源中讀取圖像作爲流?

在Visual Studio中,我將映像導入\ Resources文件夾,它具有File NameFull Path屬性。我想用它的名字。

我的目標是要做到這一點:

System.IO.Stream contentStream = get the image stream from \Resources 
System.Net.Mail.LinkedResource logo = new LinkedResource(contentStream); 
+0

在這一點上,我不明白這個文件,具體怎麼類型'Example'參與,並在資源名稱是:https://msdn.microsoft.com/en-us/library/zxee5096(v= vs.110)的.aspx?CS-保存琅= 1&CS-LANG = CSHARP#代碼片段 - 3 – Tim

+0

我想'Example'只是利用當前的類找到組裝,但他們在哪裏得到的名稱爲 「閃屏」 ? – Tim

回答

3

你有幾個簡單的選項。

的/ Resources文件夾是不完全是一個特殊的文件夾。您仍然需要在解決方案資源管理器中選擇要嵌入到程序集中的任何項目,然後從「屬性」窗口中指定其構建類型爲「嵌入式資源」。然後使用ResourceManager.GetStream以流的形式檢索內容。

對於大多數情況下,簡單的方法,雖然是使用項目屬性設計器窗口到你想要的文件添加一個Resources.resx文件,然後添加到資源的設計師。例如,你可以這樣添加圖像:

enter image description here

Visual Studio將生成代碼供您檢索您嵌入這樣的文件。

+0

謝謝。我被困在嘗試實例化ResourceManager的這一點上。什麼是默認的「baseName」,提供給構造函數的第一個參數?如果我進入Project Properties -Resources,我可以在那裏看到嵌入的圖像。 – Tim

+0

我收到此錯誤:「找不到適合指定區域性或中性文化的資源確保\」 {Resources.resources \」正確嵌入或鏈接到程序集\‘在編譯時富\’,或所有衛星程序集都需要... – Tim

+0

當我採用第一種直接使用ResourceManager的方法時,我經常不得不面對這些問題。閱讀https://support.microsoft.com/en-us/kb/319292以獲取更多幫助我更喜歡在大多數情況下使用Resources設計器,它更容易管理,而且您不必擔心名稱是否正確; VS會爲您做,如果您想自己動手,使用Resources設計器,然後查看生成的Resources.Designer.cs文件,看看它如何構建ResourcesManager。 –