.NET基礎之主題和皮膚

iDotNetSpace發表於2009-05-25

1.建立主題
新增ASP.NET資料夾->App_Themes,會自動生成一個"主題1"的資料夾,在資料夾中新增新項->外觀檔案。還可以在主題資料夾下新增一個CSS檔案,新增新項->樣式表,只要指定了主題,css就會直接應用到頁面中。

2.應用主題
在web.config檔案中使用全域性主題
<system.web>
<pages theme="BasicBlue" />
</system.web>
在單個頁面上使用主題


針對單個控制元件應用主題
SkinId="皮膚ID"

3.主題應用優先順序
"Theme"屬性的優先順序最高的,config中的"pages.theme"其次,"StylesheetTheme"屬性的優先順序最低。
如果設定了"pages.theme",同時在頁面中設定"Theme",則"Theme"覆蓋"pages.theme"。
如果設定了"pages.theme",同時在頁面中設定"StylesheetTheme",則"pages.theme"優先。
如果同時設定了"Theme"和StylesheetTheme",則"Theme"覆蓋"StylesheetTheme"。
如果單個控制元件不指定"SkinId",則為預設皮膚,如果指定"SkinId",則指定皮膚優先。

4.皮膚寫法
與原始碼中該控制元件寫法一致,僅去掉"ID"屬性,可以增加"SkinId"屬性,如無"SkinID"屬性,則為預設皮膚。在皮膚中還可以指定值,如例中的"Text"屬性。
例:

5.動態切換主題
頁面原始碼中新增一個Button控制元件

頁面cs程式碼中新增事件

Code
protected void page_PreInit(object sender, EventArgs e)
{
     //theme必須在page被請求的最早期就應用上,所以必須在Page_PreInit事件中設定皮膚,不能在page_load事件中設定。此處的Request.QueryString["theme"] 為頁面回傳的主題名稱。
     if (Request.QueryString["theme"] != null)
     //這裡也可以設定Page.StyleSheetTheme,根據需要選擇
     Page.Theme = Request.QueryString["theme"].ToString();
}

protected void Button1_Click(object sender, EventArgs e)
{
     //頁面需要回傳
     Response.Redirect("default.aspx?theme=主題1");
}

原文:http://www.cnblogs.com/shanymen/archive/2009/05/17/1458730.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-604089/,如需轉載,請註明出處,否則將追究法律責任。

相關文章