在.net中,可以創建資源文件(.resx)供程序使用,可以在資源文件中加入圖片、字符串等自定義資源。以便在程序中使用這些文件。下邊就我們就創建一個名為Skins.resx的資源文件,在裡面裝載一些程序UI需要的資源,以便繪制程序界面。
首先我們新建一個Windows程序(Windows Application),在Form1_Load中加入以下代碼:
ResXResourceWriter rw = new ResXResourceWriter("Skins.resx"); //skins Image Bottom_Left = Image.FromFile("Bottom_Left.gif"); Image Bottom_Middle = Image.FromFile("Bottom_Middle.gif"); Image Bottom_Right = Image.FromFile("Bottom_Right.gif"); Image Middle_Left = Image.FromFile("Middle_Left.gif"); Image Middle_Right = Image.FromFile("Middle_Right.gif"); Image Top_Left = Image.FromFile("Top_Left.gif"); Image Top_Middle = Image.FromFile("Top_Middle.gif"); Image Top_Right = Image.FromFile("Top_Right.gif"); Image SysButton_Close = Image.FromFile("SysButton_Close.gif"); Image SysButton_Min = Image.FromFile("SysButton_Min.gif"); //ico Image Acc_Config = Image.FromFile("Acc_Config.png"); Image Acc_Everyday = Image.FromFile("Acc_Everyday.png"); Image Acc_Search = Image.FromFile("Acc_Search.png"); Image Acc_Statistics = Image.FromFile("Acc_Statistics.png"); Image Sys_Towards = Image.FromFile("Sys_Towards.png"); //colors string BackColor = "#E5F6F9"; //窗口和控件背景色 string BorderColor = "#79C6BC"; //控件邊框顏色 string ForeColor = "#79C6BC"; //控件前景色,即字體顏色 string ActiveColor = "#79C6BC"; //控件激活(獲得焦點)時顏色 string ActiveBackColor = "#DAF1F3"; //控件激活時候控件背景色 string InactiveColor = "#C0E5E4"; //控件非激活(失去焦點)時顏色 //add skins rw.AddResource("Bottom_Left", Bottom_Left); rw.AddResource("Bottom_Middle", Bottom_Middle); rw.AddResource("Bottom_Right", Bottom_Right); rw.AddResource("Middle_Left", Middle_Left); rw.AddResource("Middle_Right", Middle_Right); rw.AddResource("Top_Left", Top_Left); rw.AddResource("Top_Middle", Top_Middle); rw.AddResource("Top_Right", Top_Right); rw.AddResource("SysButton_Close", SysButton_Close); rw.AddResource("SysButton_Min", SysButton_Min); //add colors rw.AddResource("BackColor", BackColor); rw.AddResource("BorderColor", BorderColor); rw.AddResource("ForeColor", ForeColor); rw.AddResource("ActiveColor", ActiveColor); rw.AddResource("ActiveBackColor", ActiveBackColor); rw.AddResource("InactiveColor", InactiveColor); //add ico rw.AddResource("Acc_Config", Acc_Config); rw.AddResource("Acc_Everyday", Acc_Everyday); rw.AddResource("Acc_Search", Acc_Search); rw.AddResource("Acc_Statistics", Acc_Statistics); rw.AddResource("Sys_Towards", Sys_Towards); rw.Generate(); rw.Close();
現在我們來解釋一下上邊的代碼:
ResXResourceWriter rw = new ResXResourceWriter("Skins.resx");
是創建一個XML資源對象rw,並命名生成資源文件名為Skines.resx
Image Bottom_Left = Image.FromFile("Bottom_Left.gif");
這句基本不用解釋,就創建一個Image對象,並將該對象用"Bottom_Left.gif"初始化。需要注意的是,我們這裡直接使用了圖片名稱,並沒有指定圖片路徑,那麼系統就默認是當前目錄下,也就是項目的\bin\Debug目錄下需要有對應的圖片。否則會報錯。
string BackColor = "#E5F6F9"; //窗口和控件背景色
這句......跳過。
rw.AddResource("Bottom_Left", Bottom_Left);
用AddResource方法將定義好的對象增加到資源中。
rw.Generate(); rw.Close();
調用Generate()方法生成資源文件,這時候\bin\Debug目錄下就生成了Skins.resx文件。然後用Close()關閉。
整個資源文件的生成方法就這麼簡單。這時候的Skines.resx文件就是一個標准的.net資源文件,可以在程序用使用了。
下一篇文章我將介紹如何使用這個Skines.resx文件。