一、加载主题(皮肤、样式表)的多种方式除了在页面指令中采用Theme或者StylesheetTheme为单个页面加载主题外,还可以通过配置文件为多个页面批量加载主题,另外,还可以通过改变页面的Theme属性值动态加载主题,或者通过改变控件的SkinID属性值动态加载主题中的皮肤,或者通过改变控件的CssClass属性值动态加载主题中的样式表。1、通过修改配置文件为多个页面批量加载主题在配置文件里添加Theme或者StyleSheetTheme属性
-->此时配置文件目录下的所有页面都会自动加载改主题,但记得去掉Page指令里的Theme或者StyleSheetTheme属性,否则会重写配置文件的里的对应属性。2、通过改变页面的Theme属性值动态加载主题在页面的PreInit事件中可以动态加载主题,此时皮肤文件和样式表文件会同时被加载,但在该事件中不能够调用页面的控件,因为在此事件中,页面控件还未初始化。<%@PageLanguage="C#"Theme="DynamicTheme"%>……
Theme_XPTheme_Win7……protectedvoidPage_PreInit(objectsender,EventArgse){Theme="Theme_XP";if(Request["theme"]!=null){switch(Request["theme"]){case"XP":Theme="Theme_XP";break;case"Win7":Theme="Theme_Win7";break;}}}3、通过改变控件的SkinID属性值动态加载主题中的皮肤除了在页面的PreInit事件中动态加载主题外,还可以在PreInit事件中选择加载主题中的皮肤,但皮肤只能是命名皮肤。<%@PageLanguage="C#"Theme="DynamicCSS"%>……ProfessionalColorful……protectedvoidPage_PreInit(objectsender,EventArgse){if(Request["skin"]!=null){switch(Request["skin"]){case"professional":grdMovies.SkinID="Professional";break;case"colorful":grdMovies.SkinID="Colorful";break;}}}4、通过改变控件的CssClass属性值动态加载主题中的样式表除了动态加载主题外,还可以选择加载主题中的样式表。样式表文件:App_Themes\DynamicCSS\GridView.CSS.Professionaltd{padding:4px;color:#333333;background-color:#F7F6F3;}.Professional.Headerth{padding:4px;background-color:#5D7B9D;font-weight:bold;color:White;}.Professional.Alternatingtd{background-color:White;color:#284775;}.Colorfultd{padding:4px;color:#333333;background-color:#FFFBD6;}.Colorful.Headerth{padding:4px;background-color:#990000;font-weight:bold;color:White;}.Colorful.Alternatingtd{background-color:White;}<%@PageLanguage="C#"Theme="DynamicCSS"%>…………protectedvoidbtnSubmit_Click(objectsender,EventArgse){grdMovies.CssClass=ddlCssClass.SelectedItem.Text;}二、禁用主题(皮肤、样式表)当加载主题到页面后,因为某些原因需要禁用某个页面的主题,或者说禁用某个控件的主题,此时我们可以采用设置Theme或者StyleSheetTheme为空来完成。而设置EnableTheming为False禁用的只是主题中的皮肤。禁用主题:设置Theme或者StyleSheetTheme为空来完成,或者创建一个空的主题文件,然后关联它。禁用主题中的皮肤:当以Theme方式加载主题时,我们可以设置控件或者页面的EnableThemeing为False禁用主题中的皮肤。三、Theme和StyleSheetTheme的异同两者都可用来加载指定的主题,当主题中不包含皮肤文件时,两者效果一样,当主题中包含皮肤文件时,两者因优先级不一样会产生不一样的效果,优先级依次为:StyleSheetTheme->Page->The...