使用 ResXResourceWriter 以程式碼動態產生 .resx,適合將大量圖片、顏色、字串批量匯入。
var rw = new ResXResourceWriter("Skins.resx");
// 圖片資源
var images = new Dictionary<string, string>
{
["Bottom_Left"] = "Bottom_Left.gif",
["Bottom_Middle"] = "Bottom_Middle.gif",
["Bottom_Right"] = "Bottom_Right.gif",
["Middle_Left"] = "Middle_Left.gif",
["Middle_Right"] = "Middle_Right.gif",
["Top_Left"] = "Top_Left.gif",
["Top_Middle"] = "Top_Middle.gif",
["Top_Right"] = "Top_Right.gif",
["SysButton_Close"] = "SysButton_Close.gif",
["SysButton_Min"] = "SysButton_Min.gif",
["Acc_Config"] = "Acc_Config.png",
["Acc_Everyday"] = "Acc_Everyday.png",
["Acc_Search"] = "Acc_Search.png",
["Acc_Statistics"] = "Acc_Statistics.png",
["Sys_Towards"] = "Sys_Towards.png"
};
foreach (var kv in images)
{
using (var img = Image.FromFile(kv.Value))
rw.AddResource(kv.Key, img);
}
// 顏色字串
rw.AddResource("BackColor", "#E5F6F9");
rw.AddResource("BorderColor", "#79C6BC");
rw.AddResource("ForeColor", "#79C6BC");
rw.AddResource("ActiveColor", "#79C6BC");
rw.AddResource("ActiveBackColor", "#DAF1F3");
rw.AddResource("InactiveColor", "#C0E5E4");
rw.Generate();
rw.Close();
執行後會在 bin\Debug 產生 Skins.resx,為標準 XML 格式資源檔,可直接納入專案使用。
Image.FromFile 路徑預設為執行目錄,請確認圖片已複製至輸出目錄。using 確保釋放檔案鎖定。.resx 亦可用 Visual Studio 設計工具開啟編輯。