ASP.NET 主題 讓你集中管理網站外觀,包含外觀、CSS 樣式表、圖片與其他資源。本文說明主題架構、兩種外觀類型、建立步驟與實際範例。
App_Themes 下,每個子目錄代表一個主題名稱。.skin,定義控制項屬性設定,類似控制項標記但僅含樣式屬性。.css 會自動套用。| 類型 | 特徵 | 適用情境 |
|---|---|---|
| 預設外觀 | 無 SkinID 屬性 | 自動套用至同類型所有控制項 |
| 具名外觀 | 設定 SkinID | 控制項明確指定 SkinID 時套用 |
SampleTheme。Label.skin、Calendar.skin 等外觀檔。web.config 設定 Theme="SampleTheme" 或 StyleSheetTheme="SampleTheme"。<asp:Label runat="server" Font-Bold="true" ForeColor="orange" />
<asp:Label runat="server" SkinID="Blue" Font-Bold="true" ForeColor="blue" />
<asp:Calendar runat="server"
BackColor="#FFFFCC" BorderColor="#FFCC66" BorderWidth="1px"
DayNameFormat="FirstLetter" Font-Names="Verdana" Font-Size="8pt"
ForeColor="#663399" Height="200px" ShowGridLines="True" Width="220px">
<SelectedDayStyle BackColor="#CCCCFF" Font-Bold="True" />
<SelectorStyle BackColor="#FFCC66" />
<OtherMonthDayStyle ForeColor="#CC9966" />
<TodayDayStyle BackColor="#FFCC66" ForeColor="White" />
<NextPrevStyle Font-Size="9pt" ForeColor="#FFFFCC" />
<DayHeaderStyle BackColor="#FFCC66" Font-Bold="True" Height="1px" />
<TitleStyle BackColor="#990000" Font-Bold="True" Font-Size="9pt" ForeColor="#FFFFCC" />
</asp:Calendar>
<asp:Calendar SkinID="Simple" runat="server"
BackColor="White" BorderColor="#999999" CellPadding="4"
DayNameFormat="FirstLetter" Font-Names="Verdana" Font-Size="8pt"
ForeColor="Black" Height="180px" Width="200px">
<SelectedDayStyle BackColor="#666666" Font-Bold="True" ForeColor="White" />
<SelectorStyle BackColor="#CCCCCC" />
<WeekendDayStyle BackColor="#FFFFCC" />
<OtherMonthDayStyle ForeColor="#808080" />
<TodayDayStyle BackColor="#CCCCCC" ForeColor="Black" />
<NextPrevStyle VerticalAlign="Bottom" />
<DayHeaderStyle BackColor="#CCCCCC" Font-Bold="True" Font-Size="7pt" />
<TitleStyle BackColor="#999999" BorderColor="Black" Font-Bold="True" />
</asp:Calendar>
頁面指示詞:<%@ Page Theme="SampleTheme" %>
或 web.config 全站套用:<pages theme="SampleTheme" />
在 Page_PreInit 事件中依使用者偏好設定 Page.Theme 屬性,即可即時切換外觀。