asp.net2.0创建主题外观文件
创建外观文件
外观文件是主题的核心内容,用于定义页面中服务器控件的外观,即“默认外观”和“已命名外观”。
默认外观是在设置控件外观时,没有SkinID属性,当向页面应用主题时,默认外观自动应用于同一类型的所有控件。例如,如果为GridView控件创建一个默认外观,则该控件外观适用于使用本主题的页面上的所有GridView控件。另外,默认外观严格按控件类型来匹配,因此Button控件外观适用于所有Button控件,但不适用于LinkButton控件或从Button对象派生的控件。
已命名外观是设置了SkinID属性的控件外观。已命名外观不会自动按类型应用于控件,通过设置控件的SkinID属性将已命名外观显式应用于控件。通过创建已命名外观,可以为应用程序中同一控件的不同实例设置不同的外观。
控件外观设置的属性可以是简单属性,也可以是复杂属性。简单属性是控件外观设置中最常见的类型,例如,控件背景颜色(BackColor)、控件的宽度(Width)等。复杂属性主要包括集合属性、模板属性、数据绑定表达式(仅限于<%#Eval%>或<%#Bind%>)等类型。下面创建一个简单的外观示例,加深读者对创建外观文件的理解。
示例
创建一个简单的外观示例
该示例中包括4个Button控件和一个LinkButton控件,其中两个Button控件设置了默认外观,另外两个Button控件设置了已命名外观,LinkButton控件的添加是为了说明默认外观严格按控件类型来匹配这一特性。示例运行结果如图1所示。

图1 创建外观文件示例图
为了创建外观文件,必须在应用程序根目录下创建一个App_Themes的文件夹用于存储主题,然后,在该文件夹中创建一个主题名为mythemes的子文件夹,在mythemes文件夹下创建一个Button.skin外观文件,用来设置页面中Button控件的外观。Button.skin外观文件的源代码如下:
在代码中创建了3个Button控件的外观,其中没有添加SkinID属性的是Button的默认外观,另外两个设置了SkinID属性的是Button的命名外观。它们的属性分别为SetThemes1和SetThemes2。
技巧:在创建控件外观时,一个简单的方法是将控件添加到.aspx页面中,然后,利用Visual studio2005的属性窗口及可视化设计功能对控件进行设置,最后,再将控件代码复制到外观文件中并做适当的修改。
注意:在外观文件中应移除控件的ID属性。
创建一个Default.aspx页面,并在该页面上添加四个Button控件和一个LinkButton控件,并应用Button.skin文件中的控件外观设置。该页面的源代码如下:
<%@ Page Language="C#" AutoEventWireup="True" CodeFile="Default.aspx.cs" Inherits="_Default"
Theme ="mytheme" %>
"http://www.w3.org/ TR/xhtml1/ DTD/xhtml1- transitional.dtd">
无标题页