如何:应用 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.config 文件中的主题设置遵循常规的配置层次结构约定。例如,要仅对一部分页应用某主题,可以将这些页与它们自己的 Web.config 文件放在一个文件夹中,或者在根 Web.config 文件中创建一个 <location> 元素以指定文件夹。有关详细信息,请参见 配置特定文件和子目录。
对单个页应用主题
将 @ Page 指令的 Theme 或 StyleSheetTheme 属性设置为要使用的主题的名称,如下面的示例所示:
<%@ Page Theme="ThemeName" %> <%@ Page StyleSheetTheme="ThemeName" %>
现在,该主题及其对应的样式和外观仅应用于声明它的页。
对控件应用外观
主题中定义的外观应用于已应用该主题的应用程序或页中的所有控件实例。在某些情况下,您可能希望对单个控件应用一组特定属性。这可以通过创建命名外观(.skin 文件中设置了 SkinID 属性的一项),然后按 ID 将它应用于各个控件来实现。
对控件应用命名外观
设置控件的 SkinID 属性,如下面的示例所示:
<asp:Calendar runat="server" ID="DatePicker" SkinID="SmallCalendar" />
如果页面主题不包括与 SkinID 属性匹配的控件外观,则控件使用该控件类型的默认外观。