//1. 项目下增加相关图片文件夹
------------------------------
--项目WinFormStudy
--窗体LoginForm.cs
--窗体MainForm.cs
--文件夹StyleImage
--子文件夹StyleA
--相关图片btnAddUser.JPG及其他
(将图片做为 嵌入的资源 进行生成)
--子文件夹StyleB
--相关图片btnAddUser.JPG及其他
//2. App.config中保存当前窗体的风格
------------------------------------
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="CurrentStyle" value="StyleB"/>
</appSettings>
...
</configuration>
//3. 窗体调用
----------------
DrawStylePicture.DrawButtonBackgroundImage(this.btnAddUser, "btnAddUser.JPG");
//4. DrawStylePicture
-----------------------
Code
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Reflection;
using System.Drawing;
using System.IO;
namespace WinFormStudy
{
class DrawStylePicture
{
public static void DrawFormBackgroundImage(Object obj, string strPicName)
{
Form frm = (Form)obj;
string strStyleName = AppConfigXMLManage.GetAppConfig("CurrentStyle");
Assembly assem = Assembly.GetExecutingAssembly();
System.IO.Stream stream = assem.GetManifestResourceStream("WinFormStudy.StyleImage." + strStyleName + "." + strPicName);
Image image = Bitmap.FromStream(stream);
frm.BackgroundImage = image;
frm.BackgroundImageLayout = ImageLayout.Stretch;
}
public static void DrawPanelBackgroundImage(Object obj, string strPicName)
{
Panel pnl = (Panel)obj;
string strStyleName = AppConfigXMLManage.GetAppConfig("CurrentStyle");
Assembly assem = Assembly.GetExecutingAssembly();
System.IO.Stream stream = assem.GetManifestResourceStream("WinFormStudy.StyleImage." + strStyleName + "." + strPicName);
Image image = Bitmap.FromStream(stream);
pnl.BackgroundImage = image;
pnl.BackgroundImageLayout = ImageLayout.Stretch;
}
public static void DrawButtonBackgroundImage(Object obj, string strPicName)
{
Button btn = (Button)obj;
string strStyleName = AppConfigXMLManage.GetAppConfig("CurrentStyle");
Assembly assem = Assembly.GetExecutingAssembly();
System.IO.Stream stream = assem.GetManifestResourceStream("WinFormStudy.StyleImage." + strStyleName + "." + strPicName);
Image image = Bitmap.FromStream(stream);
btn.BackgroundImage = image;
btn.BackgroundImageLayout = ImageLayout.Stretch;
}
}
}
//5. AppConfigXMLManage
-------------------------
Code
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Windows.Forms;
namespace WinFormStudy
{
class AppConfigXMLManage
{
public static string GetAppConfig(string strKey)
{
//return System.Configuration.ConfigurationManager.AppSettings[strKey];
XmlDocument doc = new XmlDocument();
try
{
doc.Load(Application.ExecutablePath + ".config");
XmlNode node = doc.SelectSingleNode(@"//add[@key='" + strKey + "']");
XmlElement ele = (XmlElement)node;
return ele.GetAttribute("value");
}
catch
{
return string.Empty;
}
}
public static bool UpdateAppConfig(string strKey, string strValue)
{
XmlDocument doc = new XmlDocument();
try
{
doc.Load(Application.ExecutablePath + ".config");
XmlNode node = doc.SelectSingleNode(@"//add[@key='" + strKey + "']");
XmlElement ele = (XmlElement)node;
ele.SetAttribute("value", strValue);
doc.Save(Application.ExecutablePath + ".config");
}
catch
{
return false;
}
return true;
}
}
}