主题(theme)用于定义站点的外观类似于使用CSS设置页面的样式然而与CSS不同的是主题可以指定服务器端元素例如TreeView控件在浏览器上显示时的外观记住服务器控件必须转换为标准的HTML而且如果浏览器理解在页面上如何呈现JavaScript的话还可能会有一些JavaScript脚本在浏览器请求页面时一个设置了主题的服务器控件将转换为带有style属性的相关客户端元素
一个主题在创建好之后有两种使用方式可以将它用作Stylesheet主题其行为类似于一个普通的CSS样式表另一种方式是将它用作Customization主题这将改变您习惯使用的样式选取规则因为Custornizaton主题将指定用于每个元素的样式覆盖在单独的样式表中指定的所有样式或者甚至覆盖元素的style属性中指定的样式
无论以哪种方式使用主题创建它的基本技术都是一样的另外可以选择在整个站点中使用一个主题也可以为每个页面指定一个主题
创建主题
创建一个主题的过程包括创建一个skin文件该文件定义了页面上每个元素的外观以及将这个皮肤文件放置到一个文件夹中这个文件夹的名称就是所创建的主题的名称所有的主题都保存在一个名为App_Themes的应用程序文件夹中下面是一个皮肤文件示例
<asp:Calendar runat=server FontNames=Century Gothic FontSize=Small>
<OtherMonthDayStyle BackColor=Lavender />
<DayStyle ForeColor=MidnightBlue />
<TitleStyle BackColor=LightSteelBlue />
</asp:Calendar>
<asp:TreeView runat=server ExpandDepth= FontNames=Century Gothic BorderColor=LightSteelBlue BorderStyle=Solid >
<SelectedNodeStyle FontBold=True ForeColor=SteelBlue />
<RootNodeStyle FontBold=True />
<NodeStyle ForeColor=MidnightBlue />
<LeafNodeStyle FontSize=Smaller />
<HoverNodeStyle ForeColor=SteelBlue />
</asp:TreeView>
<asp:Label SkinId=textLabel runat=server FontNames=Century Gothic FontSize=pt ForeColor=MidnightBlue FontBold=False></asp:Label>
<asp:Label SkinId=bigLabel runat=server CssClass=bigtext></asp:Label>
<asp:ImageButton SkinId=homeImage runat=server ImageUrl=~/platypusgif />
这个文件包含了为种类型的元素所作的定义这个文件中的ASPNET TreeView控件和Calenda控件定义了站点上的每个日历控件和树型视图控件的外观注意这些控件没有ID属性──这是所有皮肤文件的一个特点每个带有皮肤文件的元素都没有ID在运行的时候如果将这个主题指定为页面的默认主题而该页面上包含一个Calendar控件那么这个控件将自动继承在这个文件中定义的样式
ASPNET 入门教程完整版
[] [] []