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

1 month ago
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Drawing;
  7. using System.IO;
  8. using System.Windows.Forms;
  9. namespace Customize.Controls
  10. {
  11. /// <summary>
  12. /// 皮肤管理中心:皮肤的编辑,设置,保存等等
  13. /// </summary>
  14. internal class SkinManager
  15. {
  16. #region private attributes
  17. private static SkinTheme _CurrentSkin;
  18. private static readonly string SkinSectionName = "SkinManager";
  19. private static readonly string CurrentSkinName = "CurrentSkin";
  20. #endregion
  21. #region Initialize
  22. public SkinManager()
  23. {
  24. }
  25. #endregion
  26. #region Properties
  27. /// <summary>
  28. /// 当前使用的皮肤
  29. /// Gets the current skin
  30. /// </summary>
  31. /// <value>The current skin.</value>
  32. public static SkinTheme CurrentSkin
  33. {
  34. get
  35. {
  36. if (_CurrentSkin == null)
  37. {
  38. _CurrentSkin = GetSkinTeme();
  39. }
  40. return _CurrentSkin;
  41. }
  42. }
  43. #endregion
  44. #region private methods
  45. /// <summary>
  46. /// 默认皮肤
  47. /// Gets the default skin teme.
  48. /// </summary>
  49. /// <returns>Return a data(or instance) of SkinTheme.</returns>
  50. private static SkinTheme GetSkinTeme()
  51. {
  52. try
  53. {
  54. int value;
  55. //value = int.TryParse(IniHelper.INIGetStringValue(FileHelper.GetAbsolutePath(@"/Config/ClientCfg.ini"), SkinSectionName, CurrentSkinName, "0"), out value) ? value : 0;
  56. //EnumTheme theme = value.ToEnumByValue<EnumTheme>();
  57. //switch (theme)
  58. //{
  59. // case EnumTheme.BlueSea:
  60. // return new SkinThemeBlueSea();
  61. // case EnumTheme.KissOfAngel:
  62. // return new SkinThemeKissOfAngel();
  63. // case EnumTheme.NoFlower:
  64. // return new SkinThemeNoFlower();
  65. // case EnumTheme.SunsetRed:
  66. // return new SkinThemeSunsetRed();
  67. // case EnumTheme.Default:
  68. // default:
  69. // return new SkinThemeDefault();
  70. //}
  71. return new SkinThemeDefault();
  72. }
  73. catch (Exception ex)
  74. {
  75. return new SkinThemeDefault();
  76. }
  77. }
  78. /// <summary>
  79. /// 设置当前主题皮肤
  80. /// </summary>
  81. /// <param name="theme">The theme.</param>
  82. public static void SettingSkinTeme(EnumTheme theme)
  83. {
  84. switch (theme)
  85. {
  86. case EnumTheme.BlueSea:
  87. _CurrentSkin = new SkinThemeBlueSea();
  88. break;
  89. case EnumTheme.KissOfAngel:
  90. _CurrentSkin = new SkinThemeKissOfAngel();
  91. break;
  92. case EnumTheme.NoFlower:
  93. _CurrentSkin = new SkinThemeNoFlower();
  94. break;
  95. case EnumTheme.SunsetRed:
  96. _CurrentSkin = new SkinThemeSunsetRed();
  97. break;
  98. case EnumTheme.Default:
  99. default:
  100. _CurrentSkin = new SkinThemeDefault();
  101. break;
  102. }
  103. }
  104. #endregion
  105. /// <summary>
  106. /// 保存配置文件
  107. /// </summary>
  108. public static void Save()
  109. {
  110. try
  111. {
  112. //IniHelper.INIWriteItems(FileHelper.GetAbsolutePath(@"/Config/ClientCfg.ini"), SkinSectionName, string.Format("{0}={1}", CurrentSkinName, ((int)CurrentSkin.ThemeStyle).ToString()));
  113. }
  114. catch (Exception ex)
  115. {
  116. MessageBox.Show(string.Format("保存主题信息出现异常:{0}\n", ex.Message));
  117. }
  118. }
  119. }
  120. }