You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

138 lines
4.0 KiB

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
{
/// <summary>
/// 皮肤管理中心:皮肤的编辑,设置,保存等等
/// </summary>
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
/// <summary>
/// 当前使用的皮肤
/// Gets the current skin
/// </summary>
/// <value>The current skin.</value>
public static SkinTheme CurrentSkin
{
get
{
if (_CurrentSkin == null)
{
_CurrentSkin = GetSkinTeme();
}
return _CurrentSkin;
}
}
#endregion
#region private methods
/// <summary>
/// 默认皮肤
/// Gets the default skin teme.
/// </summary>
/// <returns>Return a data(or instance) of SkinTheme.</returns>
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<EnumTheme>();
//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();
}
}
/// <summary>
/// 设置当前主题皮肤
/// </summary>
/// <param name="theme">The theme.</param>
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
/// <summary>
/// 保存配置文件
/// </summary>
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));
}
}
}
}