using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Drawing; using System.IO; using System.Windows.Forms; namespace Customize.Controls { /// /// 皮肤管理中心:皮肤的编辑,设置,保存等等 /// internal class SkinManager { #region private attributes private static SkinTheme _CurrentSkin; private static readonly string SkinSectionName = "SkinManager"; private static readonly string CurrentSkinName = "CurrentSkin"; #endregion #region Initialize public SkinManager() { } #endregion #region Properties /// /// 当前使用的皮肤 /// Gets the current skin /// /// The current skin. public static SkinTheme CurrentSkin { get { if (_CurrentSkin == null) { _CurrentSkin = GetSkinTeme(); } return _CurrentSkin; } } #endregion #region private methods /// /// 默认皮肤 /// Gets the default skin teme. /// /// Return a data(or instance) of SkinTheme. private static SkinTheme GetSkinTeme() { try { int value; //value = int.TryParse(IniHelper.INIGetStringValue(FileHelper.GetAbsolutePath(@"/Config/ClientCfg.ini"), SkinSectionName, CurrentSkinName, "0"), out value) ? value : 0; //EnumTheme theme = value.ToEnumByValue(); //switch (theme) //{ // case EnumTheme.BlueSea: // return new SkinThemeBlueSea(); // case EnumTheme.KissOfAngel: // return new SkinThemeKissOfAngel(); // case EnumTheme.NoFlower: // return new SkinThemeNoFlower(); // case EnumTheme.SunsetRed: // return new SkinThemeSunsetRed(); // case EnumTheme.Default: // default: // return new SkinThemeDefault(); //} return new SkinThemeDefault(); } catch (Exception ex) { return new SkinThemeDefault(); } } /// /// 设置当前主题皮肤 /// /// The theme. public static void SettingSkinTeme(EnumTheme theme) { switch (theme) { case EnumTheme.BlueSea: _CurrentSkin = new SkinThemeBlueSea(); break; case EnumTheme.KissOfAngel: _CurrentSkin = new SkinThemeKissOfAngel(); break; case EnumTheme.NoFlower: _CurrentSkin = new SkinThemeNoFlower(); break; case EnumTheme.SunsetRed: _CurrentSkin = new SkinThemeSunsetRed(); break; case EnumTheme.Default: default: _CurrentSkin = new SkinThemeDefault(); break; } } #endregion /// /// 保存配置文件 /// public static void Save() { try { //IniHelper.INIWriteItems(FileHelper.GetAbsolutePath(@"/Config/ClientCfg.ini"), SkinSectionName, string.Format("{0}={1}", CurrentSkinName, ((int)CurrentSkin.ThemeStyle).ToString())); } catch (Exception ex) { MessageBox.Show(string.Format("保存主题信息出现异常:{0}\n", ex.Message)); } } } }