默认情况下,外观文件中的控件定义应用于受主题影响的应用程序的页中同一类型的所有控件。但是,您可能希望同一类型的控件在应用程序的不同部分中具有不同的外观。例如,您可能希望 Label 控件的文本在一个位置显示为粗体,在另一个位置显示为斜体。在主题中使用命名外观可以实现此功能。
默认外观与命名外观
通过创建不同的控件定义,可以在外观文件中为同一类型的控件定义不同的样式。可以将这些控件定义的某个单独的 SkinID 属性设置为您选择的名称,然后对页中要应用此特定外观的控件设置此 SkinID 值。如果没有 SkinID 属性,则应用默认外观(未设置 SkinID 属性的外观)。下面的示例演示 Label 和 Calendar 控件的不同外观。请注意,页中具有指定的 SkinID 的控件获取的样式集与默认外观不同。
在主题的外观文件中,命名外观可通过多种方式进行组织。由于一个主题可以包含多个外观文件,因此可以将命名外观划分到不同的文件中,其中每个外观文件都包含具有相同 SkinID 的多个控件定义。例如,可以在一个主题中包含三个外观文件,其中每个外观文件都根据特定 SkinID 值命名: /WebSite1
/App_Themes
/MyTheme
Default.skin
Red.skin
Blue.skin
还可以按控件类型对外观文件分组,其中每个外观都包含特定控件的一组外观定义: /WebSite1
/App_Themes
/MyTheme
GridView.skin
Calendar.skin
Label.skin
您甚至可以根据站点的组成部分划分外观文件,例如: /WebSite1
/App_Themes
/MyTheme
HomePage.skin
DataReports.skin
Forums.skin
一个 Theme 目录下可以有多个外观文件,这一功能为您提供了组织的灵活性。该功能还允许您轻松与他人共享外观定义,或从一个主题向另一个主题复制外观定义,而无需在主题中编辑其他外观文件。