尊重作者,請保留 www.it55.com 連結字樣。
這一節我們聯絡asp.net 2.0新特性:主題和皮膚。
主題和皮膚的製作
建立web網站,在項目上右鍵“添加ASP.NET檔案夾”>>>“主題”,並將預設產生的“主題1”重新命名為“blue”:
在blue主題上右鍵“添加新項”,
彈出的設定框中選擇“面板檔案”,並命名為“button.skin”,最後“添加”
修改button.skin內容如下:
<%--
預設的外觀模板。以下外觀僅作為樣本提供。
1. 命名的控制面板。SkinId 的定義應唯一,因為在同一主題中不允許一個控制項類型有重複的 SkinId。
<asp:GridView runat="server" SkinId="gridviewSkin" BackColor="White" >
<AlternatingRowStyle BackColor="Blue" />
</asp:GridView>
2. 預設面板。未定義 SkinId。在同一主題中每個控制項類型只允許有一個預設的控制面板。
<asp:Image runat="server" ImageUrl="~/images/image1.jpg" />
--%>
<asp:Button runat="server" BackColor="LightSteelBlue" BorderStyle="None" ForeColor="Navy" />
<asp:Button runat="server" BackColor="LightSteelBlue" BorderStyle="Groove" ForeColor="Navy" Text="Button" BorderColor="RoyalBlue" SkinID="withBorder" />
在blue主題上右鍵“添加新項”,彈出的設定框中選擇“樣式表”,並命名為“style.css”,最後“添加”
style.css內容如下:
body { text-align:center; background-color:Gray;
}
Default.aspx內容:
<%@ Page Language="C#" AutoEventWireup="true" Theme="blue" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>主題和皮膚</title>
</head>
<body>
<form id="form1" runat="server">
<div>
整個頁面因為應用了blue主題中的style.css,所以內容置中,背景為灰色
<br />
<asp:Button ID="Button1" runat="server" Text="Button" /><br />這個按鈕沒有設定SkinId,就調用預設面板
<br />
<br />
<asp:Button ID="Button2" runat="server" Text="Button" SkinID="withBorder" /><br />這個按鈕將根據SkinId調用特定外觀
</div>
</form>
</body>
</html>
註:如果頁面中的控制項有自己的樣式或外觀定義,那麼該定義將覆蓋主題的定義。運行結果:
關於主題的應用
上述在頁面頭部通過Theme="主題名稱"來應用主題的方式是頁面級主題應用;應用程式級主題應用方法如下:
在Web.config檔案中配置如下節:
<configuration>
<system.web>
<pages Theme="主題名稱" />
</system.web>
</configuration>
註:某個檔案夾下的Web.config中的Theme設定將覆蓋應用程式的Theme設定.
關於動態載入主題
因為page對象的Theme屬性只能在頁面的PreInit事件發生過程中或者之前進行設定,所以我們必須在Page_PreInit事件處理常式中修改Theme屬性值,以達到動態調用主題的目的.
具體實現方法就不再敘述了,大家可以查看這篇文章:Asp.net 2.0中動態載入主題的兩種實現方法
關於主題和樣式的內容的基礎內容大概只有這些了,下一節我們將一起學習: asp.net 2.0新特性 網站導覽控制項