Go to DotNetFunda.com
 Online : 845 |  Welcome, Guest!   Login
 
Home > Articles > ASP.NET > Themes in ASP.Net 2.0

  • Nominate yourself for "Agile Software Development using Scrum" online session for FREE, click here.

  • Download OOPS and ASP.NET Online training session video and PPT from here.

Submit Article | Articles Home | Search Articles |

Themes in ASP.Net 2.0

 Posted on: 1/12/2010 5:26:31 AM by Bubbly | Views: 627 | Category: ASP.NET | Level: Beginner | Print Article
This article briefly describes about themes - a beginner's guide

Buy online comprehensive training video pack just for $35.00 only, see what's inside it.

Introduction : THEMES 

A theme is a collection of settings that define the look of controls and web pages. Themes are applied across all the pages in a Web application to maintain a consistent appearance.

A theme is a file with .skin extension that contains property settings for individual controls such as a Button, textbox or a Label control. You can either define skins for each control in different skin files or you can define skins for all the controls in a single file. 

Themes are of two types

  1. Page  - A theme which can be applied to only a single page of the website is called a Page theme.

A Page theme contains the control skins, style sheets, graphic files, and other resources inside the subfolders of App_Themes folder. For different themes separate subfolders are created in the App_Themes folder.

  1. Global – A global theme is a theme that is applied to all the webpages of any website. It includes property  settings, style sheet settings, and graphics. This theme allows you to maintain all the websites on the same web server and to define the same style for all the pages of all websites.

Global themes are placed in the Themes folder and can be accessed by an website.

Steps to create themes :

  1. Right click on Web application’s name in solution explorer and first select Add ASP.Net Folder option -> Themes
  2. This will add folder named App_Themes with one subfolder named Theme1 inside it.
  3. Right click Theme1 folder -> Add New Item -> Skin File (I have named it as Theme.skin). Add following code in it.      
<asp:Label runat="server" width="300px" height="25px" font-bold="true" font-size="large" forecolor="white" backcolor="Black" />
<asp:TextBox runat="server" forecolor="Red"  font-bold="true"font-size="Medium" font-italic="True"/>
<asp:Button runat="server" forecolor="white" backcolor="Black" />
  1. Now create a Default.aspx page to test out. (Below is the sample screen)
                 
  1. Add reference to Theme1.skin file in the Default.aspx page where you want to   apply Theme
  <%@ Page Language="C#" AutoEventWireup="true"CodeFile="Default.aspx.cs" Inherits="_Default" Theme="Theme1" %>

The style properties of the skin file will not be visible at design time but only run time. Press F5 and see the output.

Applying Themes on Controls at Run Time : 

You can apply theme at control level by setting its EnableTheming property to True and set the reference Theme file in Page directive. You can also create multiple themes and give a choice to the user to apply any theme at runtime.

Steps :

  1. Add two Theme folders in the App_Themes folder (like Theme1 and Theme2)
  2. Now add sking file to each Theme folder (like Simple.skin and Inverse.skin)

Simple.skin

<asp:Label runat="server" width="300px" height="25px" font-bold="true"font-size="large"
forecolor="green" backcolor="yellow" />
<asp:TextBox runat="server" forecolor="Blue" backcolor="silver" font-bold="true"
font-size="Medium" font-italic="True"/>
<asp:Button runat="server" forecolor="green" backcolor="yellow" />
Inverse.skin

<asp:Label runat="server" width="300px" height="25px" font-bold="true"font-size="large"
forecolor="yellow" backcolor="green" />
<asp:TextBox runat="server" forecolor="silver" backcolor="blue" font-bold="true"
font-size="Medium" font-italic="True"/>
<asp:Button runat="server" forecolor="yellow" backcolor="green" />

  1. Create a Default.aspx page as shown   
        

 The links are created using the below code

      <a href="Default.aspx?Theme=Theme1">Simple</a> | <ahref="Default.aspx?Theme=Theme2">Inverse</a><br />
  1. Add this in Default.aspx.cs   

protected void Page_PreInit (object sender, EventArgs e)
    {
        Page.Theme = Server.HtmlEncode(Request.QueryString["Theme"]);
    }

 Press F5 and see the output by clicking both links


If you like this article, subscribe to our RSS Feed. You can also subscribe via email to our Interview Questions, Codes and Forums section.

Interesting?   Share and Bookmark this kick it on DotNetKicks.com


Experience:1 year(s)
Home page:http://www.angeldeeps.blogspot.com
Member since:Monday, September 14, 2009
Level:Bronze
Status: [Member]
Biography:Software Engineer
 Latest post(s) from Bubbly

   ◘ Themes in ASP.Net 2.0 posted on 1/12/2010 5:26:31 AM
   ◘ Infragistics - Nested Tables in UltraGrid posted on 10/21/2009 12:56:31 AM
   ◘ MySql Features posted on 10/1/2009 11:35:52 AM
   ◘ Add Serial number in Crystal Report posted on 9/26/2009 3:08:09 AM
   ◘ Input Method Editor (IME) posted on 9/24/2009 8:39:50 AM


Submit Article

About Us | The Team | Advertise | Contact Us | Feedback | Privacy Policy | Terms of Use | Link Exchange | Members | Go Top
General Notice: If you found copied contents on this page, please let us know the original source along with your correct email id (to communicate) for further action.
All rights reserved to DotNetFunda.Com. Logos, company names used here if any are only for reference purposes and they may be respective owner's right or trademarks.
(Best viewed in IE 6.0+ or Firefox 2.0+ at 1024 * 768 or higher)