Share via


加入和編輯資源 (Visual C#)

更新:2007 年 11 月

Visual C# 應用程式通常會包含並非原始程式碼的資料。這類資料稱為「專案資源」(Project Resource),並且能夠包含二進位資料、文字檔、音訊或視訊檔、字串資料表、圖示、影像、XML 檔或應用程式需要的任何其他資料類型。專案資源資料會以 XML 格式存放在 .resx 檔案中 (預設名稱為 Resources.resx),並可以在 [方案總管] 中開啟。如需專案資源的詳細資訊,請參閱使用資源檔

將資源加入專案

您可以將資源加入至專案中,其方式是在 [方案總管] 內的專案底下,以滑鼠右鍵按一下 [屬性] 節點,然後按一下 [開啟],再從 [專案設計工具] 內的 [資源] 頁面上按一下 [加入資源] 按鈕。

您可以將資源加入專案做為連結的資源 (外部檔案),或做為內嵌資源 (會直接內嵌至 .resx 檔案)。

  • 當您加入連結資源時,存放專案資源資訊的 .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 的點陣圖資源。請注意,Resources 類別位於名為 <projectName>.Properties 的命名空間內,因此,您必須針對每個資源使用完整限定名稱,或者在您要存取 Resources 類別的原始程式檔 (Source File) 內加入適當的 using 指示詞。

System.Drawing.Bitmap bitmap1 = myProject.Properties.Resources.Image01;

get 屬性會在內部使用 ResourceManager 類別建立物件的新執行個體。

如需詳細資訊,請參閱應用程式中的資源資源檔產生器 (Resgen.exe)

附屬組件中的資源

如果您建立將要當地語系化 (轉譯) 為多重語言的應用程式,可以將每種文化特性字串組存放在其專屬的附屬組件中當做資源。當您散發應用程式時,會將主應用程式組件與任何適當的附屬組件包含在一起。然後您可以在不需要重新編譯主應用程式組件的情況下,加入其他附屬組件或修改現有附屬組件。如需詳細資訊,請參閱建立附屬組件找出和使用特定文化特性資源

請參閱

概念

專案設計工具簡介

其他資源

Visual C#

Visual C# 使用者入門

Common Language Runtime 中的組件

全球化和當地語系化應用程式