ASP.NET2.0中的Theme功能

來源:互聯網
上載者:User

ASP.NET 2.0 中新增加了 Theme 的功能,它的出現能讓網站實現換膚更加容易。

Theme 的實現包括:CSS、Skin、MasterPage。

CSS 是用於控制所有 HTML 標籤的外觀。

Skin 是用於控制所有 ASP.NET 伺服器調整的外觀,並且可以通過屬性 cssClass 定義它的 CSS 樣式。

MasterPage 是 *.aspx 頁面模版,不過它沒有被定義到 Theme 中。

------------------------------------------------

·建立 Theme 的例子:

1、在 Web 項目中建立 App_Themes 目錄。它是預定義的目錄,ASP.NET 2.0 會自動識別其目錄下的 Theme 。

2、在 App_Themes 目錄建立 orangeTheme、BlueTheme 兩個子目錄。

3、為 App_Themes 下的每個子目錄添加 Skin 檔案,如 Control.Skin 。ASP.NET 2.0 會自動分析每一個 Skin 檔案,在這裡的命名只需要為了開發時方便分類。

4、也可以為  App_Themes 下的每個子目錄添加 CSS 檔案。ASP.NET 2.0 也會自動將每一個 CSS 檔案添加到每一個使用此樣式的頁面中去。

·定義頁面內容與 Theme 樣式

1、default.aspx 頁面定義如下:

<%@ 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 首頁的 Control.Skin 檔案中定義如下:

注意:只能指定外觀屬性,不能指定如 AutoPastback 等屬性。

預設未命名的 Skin 將會為所有 TextBox 類型定義外觀。

<asp:TextBox BackColor="Orange" ForeColor="DarkGreen" Runat="Server" />
<asp:Button BackColor="Orange" ForeColor="DarkGreen" Font-Bold="True" Runat="Server" />

已經命名 SkinID 的將可以為指定 TextBox 類型定義外觀。

<asp:TextBox SkinID="Title" BackColor="Orange" ForeColor="DarkGreen" Runat="Server" />

·在頁面中使用 Theme

1、在 Aspx 檔案頂部 <%@ Page %> 中添加 Theme="Default" 屬性。這樣它就可以使用 Default 主題了。

2、如果想到在整個網站應用程式某個 Theme 就需要在 Web.Config 定義。

<configuration>
  <system.web>
    <pages theme="OrangeTheme" />
  </system.web>
</configuration>

這樣的定義相當於預設一個 Theme 在所有網站檔案中,使用時仍可以為每個頁面定義 Theme 。
Skin 部分會使用 Page 面中定義的 Theme ,而 CSS 會重載預設首頁中的 CSS 樣式表。

3、指定好 Theme 之後所有的外觀都會使用 Skin 中定義的。你也可以指定控制項的 SkinID 來定義單獨外觀。

4、如果想用編程方式定義 Theme 必需在 Page_PreInit事件中處理,如下:

void Page_PreInit(object sender, EventArgs e)
{
    Page.Theme = Request["ThemeName"];
    如果需要以編程的方式為 Page 載入 MasterPage 檔案,也需要在此定義。
    this.MasterPageFile = Request["MasterPageFile"];
}

瞭解了這些技術,將會讓網站更加多變。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.