vs2005之主题与皮肤的学习
什么是皮肤?皮肤是应用到一个控件上的样式信息,在vs2005中它的内容保存在.skin文件中,可以通过对皮肤用SkinID命名,然后控件在使用皮肤时,设置它的SkinID属性来达到控制控件的样式的目的.
什么是主题?皮肤的集合就是主题啦,保存在Themes子目录中.
C# :
Protected void Page_PreInit(object sender, EventArgs e)
{
//在页面放一按钮提交,然后从Request对象里把提交的主题名称theme取出来构成条件,赋值给page.Theme调用相应的主题文件就可以完成对整个页面的样式控制咯,要记得页面重载一下
switch (Request.QueryString["theme"])
{
case "Blue":
Page.Theme = "BlueTheme";
break;
case "Pink":
Page.Theme = "PinkTheme";
break;
}
}
//知道了如何调用,然后就是在App_Themes文件夹下面制作n多套主题文件了。
还可以在Page_PreInit中改变SKinID的值来调用不同的皮肤
void Page_PreInit(object sender, EventArgs e)
{
Calendar1.SkinID = "MySkin";
}
…………………………………………下面是技术性比较强一点的说明 ……………………………………
1、主题是什么
主题由一组元素组成:外观、级联样式表 (CSS)、图像和其他资源。主题将至少包含外观。主题是在网站或 Web 服务器上的特殊目录中定义的。主题是一组Web Control的属性设置的集合,提供一种简单的方法设置控件的样式属性。
·主题只在Web Control中有效
·母板页(Master Page)上不能设置主题,但是主题可以在内容页面上设置
·主题上设置的Web Control的样式覆盖页面上设置的样式
·如果在页面上设置EnableTheming="false",主题无效
·要在页面中动态设置主题,必须在页面生命周期Page_Preinit事件之前
·主题包括.skin和.css文件
2、.skin是什么文件
.skin是外观文件,它包含各个控件(例如,Button、Label、TextBox 或 Calendar 控件)的属性设置。控件外观设置类似于控件标记本身,但只包含您要作为主题的一部分来设置的属性。例如,下面是 Button 控件的控件外观:
<asp:button runat="server" BackColor="lightblue" ForeColor="black" />
在 theme 文件夹中创建 .skin 文件。一个 .skin 文件可以包含一个或多个控件类型的一个或多个控件外观。可以为每个控件在单独的文件中定义外观,也可以在一个文件中定义所有主题的外观。有两种类型的控件外观 -“默认外观”和“已命名外观”:
·当向页应用主题时,默认外观自动应用于同一类型的所有控件。如果控件外观没有 SkinID 属性,则是默认外观。例如,如果为 Calendar 控件创建一个默认外观,则该控件外观适用于使用本主题的页面上的所有 Calendar 控件。(默认外观严格按控件类型来匹配,因此 Button 控件外观适用于所有 Button 控件,但不适用于 LinkButton 控件或从 Button 对象派生的控件。)
·已命名外观是设置了 SkinID 属性的控件外观。已命名外观不会自动按类型应用于控件。而应当通过设置控件的 SkinID 属性将已命名外观显式应用于控件。通过创建已命名外观,可以为应用程序中同一控件的不同实例设置不同的外观。
3、如何为相同控件定义不同的Skin
使用SkinID为控件定义不同的skin,例如
<asp:Label runat=server Text="ThemedLabel" BackColor="Red" /> -label的缺省外观 <asp:Label runat=server SkinId="BoldLabel" Text="ThemedLabel_WithSkinId" BackColor="Blue" Font-Bold="true" /> - 命名为BoldLabel 的Label外观
因此页面没有指定SkinId的label自动应用缺省外观,Label的SkinID设置为BoldLabel的Label控件应用BoldLabel外观
4、如何组织主题文件内容
Theme文件下可以包含多个.Skin文件,所以可以多种方式组织你的主题文件,所有的主题文件在应用于页面之前会合并。
·一个.skin文件包含所有的控件的外观定义
·每个控件一个.skin文件
·相同SkinID的控件放在一个.skin文件中
5、有没有办法定义好的Theme文件在多个程序中共享
服务器上的任何网站以及任何网站中的任何页面都可以引用全局主题,使用全局的主题可以在各个应用程序之间共享,例如你想创建一个全局共享的主题theme1。IIS 服务器上的全局主题放置位置类似于 \Inetpub\wwwroot\aspnet_client\system_web\v2.0.xxxxx\Themes\Theme1
应用程序级别的主题会覆盖全局的主题,例如你在应用程序中也定义了Theme1的主题,那么在应用程序级的Theme1主题将覆盖全局的主题Theme1
6、StyleSheetTheme是什么
主题还可以包含级联样式表(.css 文件)。将 .css 文件放在主题目录中时,样式表自动作为主题的一部分应用。使用文件扩展名 .css 在主题文件夹中定义样式表。设置页面的 StyleSheetTheme 属性将主题作为样式表主题来应用。如果您希望能够设置页面上的各个控件的属性,同时仍然对整体外观应用主题,则可以将主题作为样式表主题来应用。EnableTheming="false"情况下StyleSheetTheme仍然有效。通过重写属性StyleSheetTheme来动态修改页面上的主题样式
public override string StyleSheetTheme
{
get{ retrun "MyStyleSheetTheme"; }
}
7、主题(Theme/Skin)资源
一组相当不错的Theme,可以直接应用的项目开发中
Theme预览:http://www.dotnettreats.com/SampleThemes/Default.aspx
Theme下载:http://www.dotnettreats.com/tools/Default.aspx
转载于:https://www.cnblogs.com/fmxyw/archive/2008/12/10/1351720.html
vs2005之主题与皮肤的学习相关推荐
- 在ASP.NET 2.0中使用样式、主题和皮肤
ASP.NET 2.0的主题和皮肤特性使你能够把样式和布局信息存放到一组独立的文件中,总称为主题(Theme).接下来我们可以把这个主题应用到任何站点,用于改变该站点内的页面和控件的外观和感觉.通过改 ...
- 待办事项优先级 开发_如何通过创建主题待办事项确定学习内容的优先级
待办事项优先级 开发 by Dan Draper 通过丹·德雷珀(Dan Draper) 如何通过创建主题待办事项确定学习内容的优先级 (How to prioritize what you lear ...
- IBM WebShere Portal主题与皮肤开发
所谓主题与皮肤,主要指门户系统的界面风格与显示方式.在企业门户项目的实施中,主题与皮肤的开发是重中之重.因为作为所有企业内外信息.应用的统一入口,可谓是一个企业的脸面.另一方面讲,在一个企业内,没有任 ...
- DevExpress中动态设置主题、皮肤
一.实现效果 1.1.设置全局主题 1.2.设置单窗体主题 1.3.重置全局窗体主题 二.WinForm窗体主题.皮肤操作核心 /*** * Title:"数据采集" 项目 * 主 ...
- IBM WebSphere Portal 6.0的主题与皮肤开发
1 .1 入门: Portal 的主题与皮肤开发 要了解如何开发 P ortal 的主题,首先要了解 IBM WebSphere Portal 的显示流程. IBM WebSphere Porta ...
- 【赠书】掌握人工智能重要主题,深度强化学习实践书籍推荐
今天要给大家介绍的书是深度强化学习实践的第二版,本书的主题是强化学习(Reinforcement Learning,RL),它是机器学习(Machine Learning,ML)的一个分支,强调 ...
- ASP.NET 2.0主题和皮肤实现网站美化
主题和外观是ASP.NET 2.0 中的新增功能, 使用 ASP.NET 2.0 的"主题和外观"功能,可以将样式和布局信息分解为单独的文件组,统称为"主题". ...
- Eclispse 换主题、皮肤、配色,换黑色主题护眼
Eclipse写android代码时,默认的文本和框架都是白色,长时间使用,显得过于刺眼.这里介绍三种方法换黑色护眼配色. 1.系统设置里更改 2.从Eclipse Marketplace里下载主题 ...
- android 换主题换皮肤(apk包方式)
更换皮肤(主题)的方式有很多种,首先要弄清楚换肤的定义,软件皮肤包括图标.字体.布局.交互风格等,换肤就是换掉皮肤包括的部分或者全部资源.皮肤一般含多个文件,有图片.配置等文件,分散的文件不利于传输和 ...
最新文章
- 在Ubuntu 14.04 64位上使用libpcap进行抓包和解包
- 华为,你终于活成了他们害怕的样子
- NSAttributedString 详解
- 黄仁勋的“数据梦” 英伟达豪掷69亿美金虎口夺食
- 马哥运维架构 第一周作业
- linux 禁用ipv6 方法
- 一道Python面试题
- docker实现宿主机和容器之间数据共享
- 解决:Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c5330000, 986513408,
- HBase之HFile索引机制
- 小程序WXML 使用小结
- 大佬对Maven进行深度讲解:什么是Maven?POM.XML如何解读?
- 考研数学刷题视频资料
- Procexp.exe —— 强大的进程管理器
- 数据表与简单java类映射(角色权限)
- Learning Agile software Development
- python+django大学教室自习室预约管理系统
- 桌面图标全部成被选中状态解决办法
- JavaWeb-02
- 分享一个自己写的可视化编程工具
热门文章
- python mysqldb安装_Flask干货:访问数据库——Python数据库框架MySQLPython
- c语言node程序,如何从Node.js调用C代码?
- wangEditor Java富文本的图片上传
- Codeforces 987C. Three displays(o(n^2))
- c语言中oxb0常量是什么意思,C语言练习库V1.0
- java(8)——和、|和||、!、^及三目运算符
- Ring3下实现进程保护,不用hook
- 总结xml配置spring-aop声明式事务配置与hibernate报错:** isno active spring和hibernate整合,原因会话工厂去路(到spring不仅仅是bean)错误
- TCP对应的应用层协议之FTP /SMTP / HTTP
- Mysql 图像二进制保存-Blocb、TinyBlob、MediumBlob、LongBlob