ASP.NET開發(fā)技巧之Theme功能淺析
ASP.NET開發(fā)技巧之Theme功能主要是有什么呢?那么下面我們就來(lái)看看:
ASP.NET 2.0 中新增加了 Theme 的功能,它的出現(xiàn)能讓網(wǎng)站實(shí)現(xiàn)換膚更加容易。
Theme 的實(shí)現(xiàn)包括:CSS、Skin、MasterPage。
CSS 是用于控制所有 HTML 標(biāo)記的外觀。
Skin 是用于控制所有 ASP.NET 服務(wù)器調(diào)整的外觀,并且可以通過屬性 cssClass 定義它的 CSS 樣式。
MasterPage 是 *.aspx 頁(yè)面模版,不過它沒有被定義到 Theme 中。
◆ASP.NET開發(fā)技巧之創(chuàng)建ASP.NET Theme 的例子:
1、在 Web 項(xiàng)目中創(chuàng)建 App_Themes 目錄。它是預(yù)定義的目錄,ASP.NET 2.0 會(huì)自動(dòng)識(shí)別其目錄下的 Theme 。
2、在 App_Themes 目錄創(chuàng)建 orangeTheme、BlueTheme 兩個(gè)子目錄。
3、為 App_Themes 下的每個(gè)子目錄添加 Skin 文件,如 Control.Skin 。ASP.NET 2.0 會(huì)自動(dòng)分析每一個(gè) Skin 文件,在這里的命名只需要為了開發(fā)時(shí)方便分類。
4、也可以為 App_Themes 下的每個(gè)子目錄添加 CSS 文件。ASP.NET 2.0 也會(huì)自動(dòng)將每一個(gè) CSS 文件添加到每一個(gè)使用此樣式的頁(yè)面中去。
◆ASP.NET開發(fā)技巧之定義頁(yè)面內(nèi)容與ASP.NET Theme 樣式
1、default.aspx 頁(yè)面定義如下:
- ﹤%@ Page Theme="OrangeTheme" %﹥
- ﹤html﹥
- ﹤head runat="server"﹥
- ﹤title﹥Orange Page﹤/title﹥
- ﹤/head﹥
- ﹤body﹥
- ﹤form id="form1" runat="server"﹥
- Enter your name:﹤br /﹥
- ﹤asp:TextBox ID="txtName" Runat="Server" /﹥
- ﹤br /﹥﹤br /﹥
- ﹤asp:Button ID="btnSubmit" Text="Submit Name" Runat="Server"/﹥
- ﹤/form﹥
- ﹤/body﹥
- ﹤/html﹥
2、在 OrangeTheme 主頁(yè)的 Control.Skin 文件中定義如下:
注意:只能指定外觀屬性,不能指定如 AutoPastback 等屬性。
- //默認(rèn)未命名的 Skin 將會(huì)為所有 TextBox 類型定義外觀。
- ﹤asp:TextBox BackColor="Orange" ForeColor="DarkGreen" Runat="Server" /﹥
- ﹤asp:Button BackColor="Orange" ForeColor="DarkGreen" Font-Bold="True" Runat="Server" /﹥
- //已經(jīng)命名 SkinID 的將可以為指定 TextBox 類型定義外觀。
- ﹤asp:TextBox SkinID="Title" BackColor="Orange" ForeColor="DarkGreen" Runat="Server" /﹥
◆ASP.NET開發(fā)技巧之在頁(yè)面中使用ASP.NET Theme
1、在 Aspx 文件頂部 ﹤%@ Page %﹥ 中添加 Theme="Default" 屬性。這樣它就可以使用 Default 主題了。
2、如果想到在整個(gè)網(wǎng)站應(yīng)用某個(gè) Theme 就需要在 Web.Config 定義。
- ﹤configuration﹥
- ﹤system.web﹥
- ﹤pages theme="OrangeTheme" /﹥
- ﹤/system.web﹥
- ﹤/configuration﹥
這樣的定義相當(dāng)于默認(rèn)一個(gè) Theme 在所有網(wǎng)站文件中,使用時(shí)仍可以為每個(gè)頁(yè)面定義 Theme 。
Skin 部分會(huì)使用 Page 面中定義的 Theme ,而 CSS 會(huì)重載默認(rèn)主頁(yè)中的 CSS 樣式表。
3、指定好 Theme 之后所有的外觀都會(huì)使用 Skin 中定義的。你也可以指定控件的 SkinID 來(lái)定義單獨(dú)外觀。
4、如果想用編程方式定義 Theme 必需在 Page_PreInit事件中處理,如下:
- void Page_PreInit(object sender, EventArgs e)
- {
- Page.Theme = Request["ThemeName"];
- // 如果需要以編程的方式為 Page 載入 MasterPage 文件,也需要在此定義。
- this.MasterPageFile = Request["MasterPageFile"];
- }
了解了這些技術(shù),將會(huì)讓網(wǎng)站更加多變。
ASP.NET開發(fā)技巧中ASP.NET Theme的使用基本情況就向你介紹到這里。
【編輯推薦】