📄 skinconfig.cs
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms;
using System.Xml;
using System.IO;
using Microsoft.Win32;
using gowk.utility;
namespace gowk.common
{
/// <summary>
/// SkinConfig 的摘要说明。
/// </summary>
public class SkinConfig
{
#region static
const string SkinDirectoryKey=@"skin\skinfile";
static SkinConfig instance;
static SkinConfig()
{
instance=new SkinConfig();
}
public static SkinConfig Instance
{
get{return instance;}
}
#endregion
public event System.EventHandler SkinChanged;
string skindir;
XmlDocument xd;
int hue;
private SkinConfig()
{
this.LoadSkin();
}
private void LoadSkin()
{
xd=new XmlDocument();
xd.Load(System.IO.Path.Combine(this.SkinDirectory,"setting.xml"));
this.hue=int.Parse(this.GetText("/gowk_skin/hue"));
}
public string SkinDirectory
{
get
{
if(this.skindir==null)
{
skindir=(string)gowk.utility.IO.Regestry.GetValue(SkinDirectoryKey);
if(!System.IO.Directory.Exists(skindir))
{
string root=System.Environment.CurrentDirectory;
skindir=System.IO.Path.Combine(root,@"skins\default");
gowk.utility.IO.Regestry.SetValue(SkinDirectoryKey,skindir);
}
}
return skindir;
}
set
{
if(skindir==value)return;
if(System.IO.Directory.Exists(value))
{
this.skindir=value;
gowk.utility.IO.Regestry.SetValue(SkinDirectoryKey,skindir);
if(this.SkinChanged!=null)this.SkinChanged(this,System.EventArgs.Empty);
}
else
{
throw(new System.IO.FileNotFoundException("不能加载皮肤目录"));
}
}
}
public string GetText(string cfg)
{
// XmlNode xn=this.xd.SelectSingleNode("gowk_skin");
XmlNode nd=this.xd.SelectSingleNode(cfg);
if(xd==null)return null;
else return nd.InnerText;
}
public string GetPath(string cfg)
{
return Path.Combine(this.skindir,this.GetText(cfg));
}
public Icon GetIcon(string cfg)
{
try
{
string file=this.GetPath(cfg);
if(!File.Exists(file))return null;
return new Icon(cfg);
}
catch(System.IO.IOException ie)
{
gowk.utility.Diagnostics.Debug.Write(ie);
return null;
}
}
public Image GetImage(string cfg)
{
try
{
string file=this.GetPath(cfg);
if(!File.Exists(file))return null;
Image i=Image.FromFile(file);return i;
// if(Image.IsAlphaPixelFormat(i.PixelFormat))return i;
// Bitmap img=gowk.common.Util.GetImage(i,this.hue);
// return img;
}
catch(System.IO.IOException ie)
{
gowk.utility.Diagnostics.Debug.Write(ie);
return null;
}
}
public XmlDocument XmlDocument
{
get{return this.xd;}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -