ASP.net 2.0 中新增加了 Theme 的功能,它的出现能让网站实现换肤更加容易。

Theme 的实现包括:CSS、Skin、MasterPage。

CSS 是用于控制所有 Html 标记的外观。

Skin 是用于控制所有 ASP.NET 服务器调整的外观,并且可以通过属性 CssClass 定义它的 CSS 样式。

MasterPage 是 *.aspx 页面模版,不过它没有被定义到 Theme 中。

------------------------------------------------

·创建 Theme 的例子:

1、在 web 项目中创建 App_Themes 目录。它是预定义的目录,ASP.NET 2.0 会自动识别其目录下的 Theme 。

2、在 App_Themes 目录创建 orangeTheme、BlueTheme 两个子目录。

3、为 App_Themes 下的每个子目录添加 Skin 文件,如 Control.Skin 。ASP.NET 2.0 会自动分析每一个 Skin 文件,在这里的命名只需要为了开发时方便分类。

4、也可以为  App_Themes 下的每个子目录添加 CSS 文件。ASP.NET 2.0 也会自动将每一个 CSS 文件添加到每一个使用此样式的页面中去。

·定义页面内容与 Theme 样式

1、default.aspx 页面定义如下:

<%@ Page Theme="OrangeTheme" %>
<html>
<head runat="server">
<title>Orange Page</title>
</head>
<body>
<form id="form1" runat="server">
Enter your name:<br />
<asp:TextBox ID="txtName" Runat="Server" />
<br /><br />
<asp:Button ID="btnSubmit" Text="Submit Name" Runat="Server"/>
</form>
</body>
</html>

2、在  OrangeTheme 主页的 Control.Skin 文件中定义如下:

注意:只能指定外观属性,不能指定如 AutoPastback 等属性。

默认未命名的 Skin 将会为所有 TextBox 类型定义外观。

<asp:TextBox BackColor="Orange" ForeColor="DarkGreen" Runat="Server" />
<asp:Button BackColor="Orange" ForeColor="DarkGreen" Font-Bold="True" Runat="Server" />

已经命名 SkinID 的将可以为指定 TextBox 类型定义外观。

<asp:TextBox SkinID="Title" BackColor="Orange" ForeColor="DarkGreen" Runat="Server" />

·在页面中使用 Theme

1、在 Aspx 文件顶部 <%@ Page %> 中添加 Theme="Default" 属性。这样它就可以使用 Default 主题了。

2、如果想到在整个网站应用某个 Theme 就需要在 Web.Config 定义。

<configuration>
  <system.web>
    <pages theme="OrangeTheme" />
  </system.web>
</configuration>

这样的定义相当于默认一个 Theme 在所有网站文件中,使用时仍可以为每个页面定义 Theme 。
Skin 部分会使用 Page 面中定义的 Theme ,而 CSS 会重载默认主页中的 CSS 样式表。

3、指定好 Theme 之后所有的外观都会使用 Skin 中定义的。你也可以指定控件的 SkinID 来定义单独外观。

4、如果想用编程方式定义 Theme 必需在 Page_PreInit事件中处理,如下:

void Page_PreInit(object sender, EventArgs e)
{
    Page.Theme = Request["ThemeName"];
    如果需要以编程的方式为 Page 载入 MasterPage 文件,也需要在此定义。
    this.MasterPageFile = Request["MasterPageFile"];
}

了解了这些技术,将会让网站更加多变。

转载于:https://www.cnblogs.com/zhuawang/archive/2007/09/11/889337.html

ASP.NET 2.0 中的 Theme 功能相关推荐

  1. ASP.NET 2.0 中的新增服务、控件与功能概述(四)

    原文出自http://blog.sina.com.cn/s/blog_48b6cd65010004fc.html 个性化 另一个新增的服务是个性化,它提供了一种现成的解决方案,用于解决存储站点用户的个 ...

  2. ASP.NET 2.0 中的新增安全功能

    发布日期: 8/26/2004 | 更新日期: 8/26/2004 Stephen Walther Microsoft Corporation 适用于: Microsoft ASP.NET 2.0 M ...

  3. ASP.NET 2.0 中改进的缓存功能

    摘要:本文中,Stephen Walther 将重点介绍 ASP.NET 2.0 中新增的缓存功能,以及如何使用这些新功能改进 ASP.NET 应用程序的性能和可扩展性.(本文包含一些指向英文站点的链 ...

  4. 在ASP.NET 2.0中使用样式、主题和皮肤

    ASP.NET 2.0的主题和皮肤特性使你能够把样式和布局信息存放到一组独立的文件中,总称为主题(Theme).接下来我们可以把这个主题应用到任何站点,用于改变该站点内的页面和控件的外观和感觉.通过改 ...

  5. 通过 ASP.NET 2.0 的数据增强功能来提高负载和减少代码 --作者:Dino Esposito

    [导读]在ASP.NET 2.0中引入了数据源组件,相对于1.x版本,在开发效率和运行效率上都得到了极大的提升,而本文将详细介绍新的数据控件,包括编程接口.用法和实现. 绝大多数Web应用程序都会使用 ...

  6. 在ASP.NET 2.0中建立站点导航层次

    站点导航提供程序--ASP.NET 2.0中的站点导航提供程序暴露了应用程序中的页面的导航信息,它允许你单独地定义站点的结构,而不用考虑页面的实际物理布局.默认的站点导航提供程序是基于XML的,但是你 ...

  7. 第一次来,试发一帖!--ASP.NET 2.0 中的SqlCacheDependency特性

    ASP.NET中的Page Cache是个很有用的东东,只要简单的在页面上方加上一个OutputCache标签,就可以让页面在制定的Duration内直接把自动保存在缓存中的页面内容输出,而不需要让A ...

  8. [翻译]在asp.net 2.0中使用WebParts

    原文地址:http://dotnetslackers.com/articles/aspnet/UsingWebPartsInASPNet20.aspx [译者改后代码下载] [翻译]在asp.net ...

  9. Asp.Net 2.0中的客户端脚本

    在使用 ASP.NET 的时候,我们仍然在许多情况下需要使用客户端脚本.以下是笔者根据自己的经验和一些粗浅的研究,对此作一个简要的总结. 一.在 HTML 里直接写脚本 这个方法是最简单的,直到如今我 ...

最新文章

  1. 用百度直达号获取新用户 让顾客直达商家服务
  2. 图解SQLite教程
  3. 1.10.Flink DataStreamAPI(API的抽象级别、Data Sources、connectors、Source容错性保证、Sink容错性保证、自定义sink、partition等)
  4. Facebook:苹果谷歌支持HTML5会死啊
  5. redux 源码详解
  6. iphone储存空间系统怎么清理_如何清理iPhone的缓存,释放更多存储空间,这些方法你知道吗...
  7. Cesium场景导出为图片
  8. mysql必知必会的数据_MySQL必知必会---数据过滤
  9. arcgis取反+掩膜提取
  10. java同构数_统计同构数关键算法
  11. netty 原理分析
  12. Netty原理:Channel
  13. 武田宣布发表ICLUSIG(R) (ponatinib)枢纽性2期PACE血液病试验的终局数据
  14. apdu 移动sim_在Android中将APDU命令发送到USIM / SIM卡
  15. 5.1 定积分的概念与性质
  16. 有没有免费压缩视频的软件?压缩视频其实很简单
  17. Androi移动开发基础
  18. 小程序引入字体集方式
  19. Options, Futures and Other Derivatives 读书笔记(三)—— CHP4
  20. 国际数据保护日,数据安全谁来守护?

热门文章

  1. 2016年计算机应用基础在线作业答案,2016电子科技大学计算机应用基础专科在线作业1...
  2. Redis的Linux单机版安装
  3. dsp 数据类型强制转换_JavaSE第二章总结—数据类型
  4. 多重背包单调队列优化思路_动态规划入门——多重背包与单调优化
  5. 最新的INTEL FPGA时序分析资料
  6. C++基础复习——C++语言数据类型
  7. python多版本共存 ubuntu_Linux下python3与python3的多版本共存
  8. 抽象类可以创建对象吗_【基础篇】java-抽象类与继承的补充
  9. lamp php5.5,CentOS 5.5快速搭建Apache+PHP5+MySQL完美Web服务器(LAMP)
  10. python查看函数参数快捷键_Python基础知识—快捷键