📄 skinedcontrol.cs
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace NetFocus.Web.Applications.Forum
{
[ParseChildren(true),PersistChildren(false)]
public abstract class SkinedControl : WebControl, INamingContainer
{
private string skinRelativePath;
public virtual string ThemeName
{
get
{
return "default";
}
}
public virtual string SkinFolder
{
get
{
return "~/Themes/" + ThemeName + "/Skins/";
}
}
public virtual string SkinRelativePath
{
get { return skinRelativePath; }
set { skinRelativePath = value; }
}
private String SkinPath
{
get
{
return this.SkinFolder + this.SkinRelativePath;
}
}
private Boolean SkinFileExists
{
get
{
HttpContext context = HttpContext.Current;
if (context != null)
{
String filePath = context.Server.MapPath(this.SkinPath);
return System.IO.File.Exists(filePath);
}
return true;
}
}
public override ControlCollection Controls
{
get
{
this.EnsureChildControls();
return base.Controls;
}
}
public override void DataBind()
{
this.EnsureChildControls();
}
public override void RenderBeginTag(HtmlTextWriter writer)
{
}
public override void RenderEndTag(HtmlTextWriter writer)
{
}
public override Page Page
{
get
{
if (base.Page == null)
{
base.Page = HttpContext.Current.Handler as System.Web.UI.Page;
}
return base.Page;
}
set
{
base.Page = value;
}
}
public override Control FindControl(string id)
{
Control ctrl = base.FindControl(id);
if (ctrl == null && this.Controls.Count == 1)
{
ctrl = this.Controls[0].FindControl(id);
}
return ctrl;
}
protected override void CreateChildControls()
{
this.Controls.Clear();
if (!LoadSkinControl())
{
throw new Exception("Skin not found.");
}
AttachChildControls();
}
protected virtual bool LoadSkinControl()
{
if (SkinFileExists && this.Page != null)
{
Control skin = this.Page.LoadControl(this.SkinPath);
skin.ID = "_";
this.Controls.Add(skin);
return true;
}
return false;
}
protected virtual void AttachChildControls()
{
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -