ASP.NET 2.0 引入的 Themes(佈景主題) 機制,讓開發者能在不修改程式碼與頁面標記的情況下,徹底改變控件與頁面的視覺風格。主題檔案獨立存放於 App_Themes 資料夾下,與應用程式邏輯完全分離,實現了樣式與內容的解耦。
1. 定義 Skin 檔 (App_Themes\Default\1.skin)
<asp:Label Font-Bold="true" ForeColor="Red" runat="server" />
2. 套用主題於頁面 (Default.aspx)
<%@ Page Language="C#" Theme="Default" %>
<html xmlns="https://www.w3.org/1999/xhtml">
<body>
<form id="form1" runat="server">
<asp:Label ID="Label1" runat="server" Text="Hello 1" /><br />
<asp:Label ID="Label2" runat="server" Text="Hello 2" /><br />
</form>
</body>
</html>
執行結果:頁面上所有 Label 控件自動變為紅色粗體,頁面本身完全不含任何樣式設定代碼。
App_Themes 必須位於網站根目錄下,其下層為各主題名稱的子資料夾(如 Default、Default2),每個子資料夾可包含多個 .skin 與 .css 檔案。

圖示:建立兩個主題資料夾 Default 與 Default2
Page_PreInit 事件中設定 Page.Theme = "Default2" 即可運行時切換。ForeColor="Blue")。.css 檔會自動連結至頁面,支援完整的版面樣式定義。Themes 機制讓網站換膚從「修改無數頁面」變為「新增一個資料夾」,是大型專案維護視覺一致性的利器。