HOW TO:套用 ASP.NET 佈景主題
更新:2007 年 11 月
您可以將主題套用至網頁、網站或全域套用。除非您覆寫個別網頁的主題,否則在網站層級設定主題的話,會將樣式和面板套用至站台中的所有網頁和控制項。在網頁層級設定主題,會將樣式和面板套用至該網頁以及它的所有控制項。
根據預設,主題會覆寫本機控制項設定。此外,您也可以將主題設定為樣式表主題,讓主題僅套用至並未在控制項上明確設定的控制項設定。
若要將主題套用至網站
在應用程式的 Web.config 檔中,將 <pages> 項目設定為主題 (全域主題或網頁主題) 的名稱,如下列程式碼範例所示:
<configuration> <system.web> <pages theme="ThemeName" /> </system.web> </configuration>
注意事項: 如果應用程式主題的名稱與全域應用程式主題相同,則會優先採用網頁主題。
若要設定主題以當做樣式表主題,並且成為本機控制項設定的次要主題,請設定 styleSheetTheme 屬性:
<configuration> <system.web> <pages styleSheetTheme="Themename" /> </system.web> </configuration>
Web.config 檔中的主題設定,會套用至該應用程式中所有的 ASP.NET Web 網頁。Web.config 檔中的主題設定會遵照一般組態階層架構慣例,例如,若要將主題僅套用至網頁的子集,可以將網頁跟專屬的 Web.config 檔放在資料夾中,或在根目錄 Web.config 檔中建立 <location> 項目以指定資料夾。如需詳細資訊,請參閱設定特定的檔案和子目錄。
若要將主題套用至個別網頁
將 @ Page 指示詞的 Theme 或 StyleSheetTheme 屬性,設定為要使用的主題名稱,如下列範例所示:
<%@ Page Theme="ThemeName" %> <%@ Page StyleSheetTheme="ThemeName" %>
主題和其對應的樣式和面板就只會套用至宣告它的網頁。
將面板套用至控制項
主題中定義的面板會套用至應用程式或已套用主題之網頁中的所有控制項執行個體。在某些情況下,您會想要將屬性的特定集合套用至個別控制項。您可以建立具名面板 (在 .skin 檔中具有 SkinID 屬性集的項目),然後根據 ID 將其套用至個別控制項,藉此執行上述作業。
若要將具名面板套用至控制項
設定控制項的 SkinID 屬性,如下列範例所示:
<asp:Calendar ID="DatePicker" SkinID="SmallCalendar" />
如果網頁主題並未包含符合 SkinID 屬性的控制項面板,控制項會使用該控制項型別的預設面板。