如何:以编程方式应用 ASP.NET 主题

更新:2007 年 11 月

除了在页面声明和配置文件中指定主题和外观首选项之外,还可以通过编程方式应用主题。可以通过编程方式同时对页面主题和样式表进行设置。但是,应用每种类型的主题的过程有所不同。

tx35bd89.alert_note(zh-cn,VS.90).gif说明:

下文引用的主题不包括在 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";
    }
    

请参见

任务

如何:定义 ASP.NET 页面主题

概念

ASP.NET 主题和外观概述