In addition to specifying theme and skin preferences in page declarations and configuration files, you can apply themes programmatically. You can set both page themes and style sheet themes programmatically; however, the procedure for applying each type of theme is different.
The themes referenced below are not included in ASP.NET. To create a custom theme, see How to: Define ASP.NET Page Themes.
In a handler for the page's PreInit method, set the page's Theme property.
The following example shows how to set a page's theme conditionally based on a value passed in the query string.
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; } }
In the page's code, override the StyleSheetTheme property and in the get accessor, return the name of the style sheet theme.
The following code example shows how to set a theme named BlueTheme as the style sheet theme for a page:
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"; } }
In a handler for the page's PreInit method, set the control's SkinID property.
The following code example shows how to set the SkinID property of a Calendar control. This example assumes that the the page's theme has already been set.
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"; }