Web.config中加载了Theme1,在ContentPage为什么没有作用? 难道在ContentPage中还要加什么引用之类的东西?
 <pages styleSheetTheme="Theme1">
     <controls>
         <add tagPrefix="asp" ...
                 .....

解决方案 »

  1.   

    关于theme设置,由于我从来不使用web.config来配置,我只能给你一个代码解决方案:public partial class MyPage : Page
    {
        protected override void FrameworkInitialize()
        {
            base.FrameworkInitialize();
            if (this.Request.QueryString["theme"] != null)
                this.Theme = this.Request.QueryString["theme"];
            else if (this.Request.Cookies["theme"] != null)  //如果设置了全局theme
                this.Theme = this.Request.Cookies["theme"].Value;
            else
                this.Theme = "Theme1";  //程序中的一个theme作为默认
         }.......
      

  2.   

    嗯我试了一下,对于StyleSheetTheme是可以动态设置的:public override string StyleSheetTheme
    {
        get
        {
            if (this.Request.QueryString["theme"] != null)
                return this.Request.QueryString["theme"];
            else if (this.Request.Cookies["theme"] != null)
                return this.Request.Cookies["theme"].Value;
            else
                return "Theme1";  //程序中的一个theme作为默认
        }
        set
        {
            base.StyleSheetTheme = value;
        }
    }使用代码的好处是你有很多地方可以自定义扩展,例如改变“return "Theme1"”为从数据库中读取每个用户自己给自己配置的theme。
      

  3.   

    不过,我建议你使用theme,而不是StyleSheetTheme 。StyleSheetTheme 会被xhtml中的样式覆盖,而theme不会。在决定界面样式方面,美工的具有最终决定权,因此使用theme。
      

  4.   

    StyleSheetTheme 会被xhtml中的样式覆盖  ->  StyleSheetTheme 会被页面xhtml中的样式覆盖