用程序改變theme
protected override void OnPreInit(EventArgs e)
{
base.OnPreInit(e);
Page.Theme = Request["ChooseTheme"];
}
//ChooseTheme為dropdownlist控件名
Theme是FrameWork 2.0新增的.
一般引用主題和皮膚方式有這有這兩種:stylesheettheme和 theme.這兩個用法基本一樣,,就是執(zhí)行的優(yōu)先級不一樣.下面是我做了測試的結果:
1. Theme="mytheme"
只在頁面上定義Theme時,,頁面只使用Theme的主題樣式,不會使用頁面上用戶再定義的樣式
2. StyleSheetTheme="mytheme"
當定義了StyleSheetTheme時,,頁面先加載StyleSheetTheme屬性中的樣式,再合并頁面上的樣式,,如果有一樣的樣式定義,,則取頁面中的樣式
3.兩者皆有 Theme="mytheme" StyleSheetTheme="mytheme2"
先加載StyleSheetTheme的樣式,再加載頁面中的樣式,,再加載Theme中的樣式,,如果有一樣的樣式定義,,則后面加載的樣式覆蓋前面加載的樣式
總而言之: 加載的順序是:StyleSheetTheme ----->頁面中的樣式 -----> Theme .
最后顯示是:取三者合并,有一樣的樣式從后面加載的往前取就對了.
由于存在優(yōu)先級:所以應用
StyleSheetTheme 在設計階段可以看到它的樣式,,所見即所得,,而應用Theme只能在運行時候才能看到結果。