主题与皮肤
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作业:
为第一次作业“登录”窗口提供主题设置并 实现换皮肤效果
主题与皮肤
软件学院:刘伟
主题和皮肤 (Theme and Skin) 是ASP.NET所提供 的一种确保UI风格一致性的技术, 提供了统一Css 与Web控件外观属性的解决方案. (1) 皮肤: 一种特殊的文件, 用于统一保存各种服 务器控件的外观属性的公共设置. 能让控件的外观 属性的设置从零星的页面中分离出来, 统一放到一 处. (2) 主题: 一种特殊文件夹, 保存一系列皮肤文件、 CSS样式文件和页面外观素材(如图片等). 使用主 题甚至可方便地替换整个网站的外观.
2,你也可以根据控件类型对皮肤文件进行分 组,使每个皮肤文件包含特定控件的一组皮 肤定义: /WebSite1 /App_Themes /MyTheme GridView.skin Calendar.skin Label.skin
3,你甚至于可以根据站点的不同区域来分割 皮肤文件,例如: /WebSite1 /App_Themes /MyTheme HomePage.skin DataReports.skin Forums.skin
皮肤文件的分类
1,由于主题可以包含多个皮肤文件,你可能 会把命名皮肤分割到单个文件中,使每个皮 肤文件包含相同SkinID的多个控件定义。例 如,在一个主题中,你可能拥有三个皮肤文 件,它们分别与特定的SkinID值对应: /WebSite1 /App_Themes /MyTheme Default.skin Red.skin Blue.skin
应用Theme方法三:
在.cs文件p来自百度文库otected override void OnPreInit(EventArgs e)代码中通过代码修 改 比如:this.Theme = "sampleTheme";
禁止某个控件应用主题
你可以通过把控件的EnableTheming属性设置 为false,把特定的控件排除出主题的应用范 围。 <%@ Page Language="VB" Theme="OrangeTheme" %> …… <asp:Label ID="Label1" runat="server" Text="Hello 1" /><br /> <asp:Label ID="Label2" runat="server" Text="Hello 2" EnableTheming="False" / ><br />
关于动态加载主题
因为page对象的Theme属性只能在页面的 PreInit事件发生过程中或者之前进行设置, 所以我们必须在Page_PreInit事件处理程序 中修改Theme属性值,以达到动态调用主题的 目的
一种方法:修改配置文件内容 二种方法:通过Resquest 、Response去实现
另外,在一个主题目录下存放多个皮肤文件 的能力使你能够灵活地组织它们。它还使你 能够轻易地与他人共享皮肤定义,或者把皮 肤定义从一个主题复制到另一个主题,而不 需要编辑主题中的皮肤文件。
应用Theme方法一:
通过把<%@ Page Theme="..." %>指令设 置为全局或应用程序层的主题(Themes或 App_Themes目录下的文件夹名称),我们可 以为单个页面指定主题。一个页面只能应用 一个主题,但是该主题中的多个皮肤文件可 以用于设置页面上的控件的样式信息。
应用Theme方法二:
在配置文件中指定主题 你也可以在Web.config文件的<pages theme="..."/>部分中指定应用在程序的所有页面 上的主题。如果需要取消某个特定的页面的主题, 需要把该页面指令的主题属性设置为空字符串 ("")。请注意,母版页不能应用主题;你应该在 内容页上或配置文件中设置主题。 <configuration xmlns="http://schemas.microsoft.com/.NetConf iguration/v2.0"> <system.web> <pages theme="ExampleTheme"/> </system.web> </configuration>
主题的内容: 1,控件支持使用Style(样式)对象模型来设 置格式属性(例如字体、边框、背景和前景颜 色、宽度、高度等等)。 2,控件也支持使用样式表(CSS)来单独设置 控件的样式。 3,皮肤,设置控件属性。 作用: 你可以用控件属性或CSS来定义控件的样式信 息,或者把这些定义信息存放到单独的一组 文件中(称为主题),然后把它应用到程序 的所有或部分页面上。单独的控件样式是用 主题的皮肤(Skin)属性来指定的。
优势:
作为在各个控件上指定样式的补充,ASP.NET 2.0引入了“主题”的概念,它提供了一种定 义站点的控件和页面的样式设置的简单途径, 而且它与应用程序的页面是分离的。主题的 优势在于,你在设计站点的时候不用考虑它 的样式,在将来应用样式的时候,不必更新 页面或应用程序代码。你还可以从外部获取 定制的主题,然后应用到自己的应用程序上。 主题的优势是,样式设置都存储在一个单独 的位置,它的维护与应用程序是分离的。 结构清晰,便于修改和阅读,便于复用
StyleSheetTheme(样式表主题)
主题与StyleSheetTheme的优先 级
(1) 如果页面单独使用stylesheettheme属性指定 主题,那么内容页内定义的控件属性将覆盖 sylesheettheme定义的控件属性 (2) 如果页面单独使用theme属性,那么只执行 theme属性所定义的主题,内容页内定义的属性将 不起作用! (3) 如果页面内同时定义stylesheettheme和theme 属性指定主题, 那么优先级是: theme > 内容页内定义的属性 >