如何:以编程方式应用 ASP.NET 主题
更新:2007 年 11 月
除了在页面声明和配置文件中指定主题和外观首选项之外,还可以通过编程方式应用主题。可以通过编程方式同时对页面主题和样式表进行设置。但是,应用每种类型的主题的过程有所不同。
说明: |
---|
下文引用的主题不包括在 ASP.NET 中。若要创建自定义主题,请参见如何:定义 ASP.NET 页面主题。 |
以编程方式应用页面主题
在页面的 PreInit 方法的处理程序中,设置页面的 Theme 属性。
下面的示例演示如何根据查询字符串中传递的值按条件设置页面主题。
Protected Sub Page_PreInit(ByVal sender As Object, _ ByVal e As System.EventArgs) _ Handles Me.PreInit Select Case Request.QueryString("theme") Case "Blue" Page.Theme = "BlueTheme" Case "Theme2" Page.Theme = "PinkTheme" End Select End Sub
protected void Page_PreInit(object sender, EventArgs e) { switch (Request.QueryString["theme"]) { case "Blue": Page.Theme = "BlueTheme"; break; case "Pink": Page.Theme = "PinkTheme"; break; } }
以编程方式应用样式表主题
在页面的代码中,重写 StyleSheetTheme 属性,然后在 get 访问器中返回样式表主题的名称。
下面的代码示例演示如何将名为 BlueTheme 的主题设置为某个页面的样式表主题:
Public Overrides Property StyleSheetTheme() As String Get Return "BlueTheme" End Get Set(ByVal value As String) End Set End Property
public override String StyleSheetTheme { get { return "BlueTheme"; } }
以编程方式应用控件外观
在页面的 PreInit 方法的处理程序中,设置控件的 SkinID 属性。
下面的代码示例演示如何设置 Calendar 控件的 SkinID 属性。此示例假定已经设置了页面主题。
Sub Page_PreInit(ByVal sender As Object, _ ByVal e As System.EventArgs) _ Handles Me.PreInit Calendar1.SkinID = "CustomSkin" End Sub
void Page_PreInit(object sender, EventArgs e) { Calendar1.SkinID = "CustomSkin"; }