stylesheettheme和 theme 的区别

来源:百度文库 编辑:神马文学网 时间:2024/04/29 18:09:05
stylesheettheme和 theme 的区别2008-03-12 10:52

 

用程序改变theme

    protected override void OnPreInit(EventArgs e)
    {
        base.OnPreInit(e);
        Page.Theme = Request["ChooseTheme"];
    }

//ChooseTheme为dropdownlist控件名

Theme是FrameWork 2.0新增的.
       一般引用主题和皮肤方式有这有这两种:stylesheetthemetheme.这两个用法基本一样,就是执行的优先级不一样.下面是我做了测试的结果:

1.  Theme="mytheme"
只在页面上定义Theme时,页面只使用Theme的主题样式,不会使用页面上用户再定义的样式


2. StyleSheetTheme="mytheme"
当定义了StyleSheetTheme时,页面先加载StyleSheetTheme属性中的样式,再合并页面上的样式,如果有一样的样式定义,则取页面中的样式


3.两者皆有 Theme="mytheme"   StyleSheetTheme="mytheme2"
先加载StyleSheetTheme的样式,再加载页面中的样式,再加载Theme中的样式,如果有一样的样式定义,则后面加载的样式覆盖前面加载的样式


总而言之: 加载的顺序是:StyleSheetTheme ----->页面中的样式 -----> Theme .
     最后显示是:取三者合并,有一样的样式从后面加载的往前取就对了.

由于存在优先级:所以应用StyleSheetTheme    在设计阶段可以看到它的样式,所见即所得,而应用Theme只能在运行时候才能看到结果。