1. 程式人生 > >新增和編輯資源

新增和編輯資源

向專案中新增資源
可以將資源新增到專案中,方法是:在“解決方案資源管理器”中,在該專案下右擊“屬性”節點,單擊“開啟”,再單擊“專案設計
器”中“資源”頁上的“新增資源”按鈕。
可以將資源作為連結的資源(外部檔案)或嵌入的資源(直接嵌入到 .resx 檔案中)新增到專案中。
在新增連結的資源時,儲存專案資源資訊的 .resx 檔案僅包含指向磁碟上資原始檔的相對路徑。如果將影象、視訊或其他
複雜檔案作為連結的資源進行新增,則可以使用預設編輯器編輯它們,可在資源設計器中為檔案型別設定關聯的預設編
輯器。
當新增嵌入的資源時,資料直接儲存到專案的資源 (.resx) 檔案中。字串只能作為嵌入的資源進行儲存。

 

編輯資源
關聯用於編輯各個資源的預設應用程式之後,資源設計器就允許您在開發過程中新增和修改專案資源。右擊“解決方案資源管理
器”中的“屬性”,然後單擊“開啟”,再單擊專案設計器中的“資源”選項卡,可以訪問資源設計器。有關更多資訊,請參
見“專案設計器” ->“資源”頁。
若要編輯嵌入的資源,必須直接處理 .resx 檔案來操作每個字元或位元組。這就是為什麼在開發過程中將複雜檔案型別儲存為鏈
接的資源更為方便的原因。可以使用 二進位制編輯器以十六進位制或 ASCII 格式在二進位制級別上編輯資原始檔(包括 .resx 檔案)。
可以使用影象編輯器編輯作為連結的資源儲存的圖示、游標以及 .jpeg 和 GIF 檔案。您還可以選擇使用其他應用程式作為這些
檔案型別的編輯器。

 

將資源編譯為程式集
當您生成應用程式時,Visual Studio 會呼叫 resgen.exe 工具,將應用程式資源轉換為稱為 Resources 的內部類。此類包含在
Resources.Designer.cs 檔案中,而該檔案巢狀在“解決方案資源管理器”中的 Resources.resx 檔案下。Resources 類將所有專案資
源封裝到靜態只讀的 get 屬性中,作為在執行時提供強型別資源的方式。當通過 Visual C# IDE 進行生成時,所有封裝的資源數
據(包括嵌入到 .resx 檔案中的資源和連結的檔案)都被直接編譯到應用程式程式集(.exe 或 .dll 檔案)中。換句話說,Visual C#
IDE 總是使用 /resource 編譯器選項。如果從命令列進行生成,則可以指定 /linkresource 編譯器選項,以便將資源部署為主應用
程式程式集之外的單獨檔案。這是一種高階應用方案,僅在某些很少見的情況下才需要使用。將資源與主應用程式程式集分開
部署的一種更為常見的方案是使用附屬程式集,如下所述。


在執行時訪問資源
若要在執行時訪問資源,只需像引用任何其他類成員一樣引用該資源即可。下面的示例顯示如何檢索名為 Image01 的點陣圖資
源。請注意,資源類位於名為 <專案名稱>.Properties 的名稱空間中,因此,要麼每個資源都使用完全限定名,要麼在作為資源
類訪問來源的原始檔中新增適當的 using 指令。
System.Drawing.Bitmap bitmap1 = myProject.Properties.Resources.Image01;
在內部,get 屬性使用 ResourceManager 類建立物件的新例項。


附屬程式集中的資源
如果您正在建立需要本地化(翻譯)為多種語言的應用程式,可以將每組特定於區域性的字串作為資源儲存在它本身的附屬程
序集中。當您分發應用程式時,其中應包含主應用程式程式集和任何相應的附屬程式集。然後您可以在不重新編譯主應用程式
程式集的情況下,新增其他附屬程式集或修改現有的附屬程式集。