在ASP.net2.0中创建Web应用程序主题

来源:MSDN

适用范围:
MicrosoftASP.NET2.0
MicrosoftVisualStudio2005

摘要:StephenWalther将论述主题(ASP.NET2.0的一项新增功能)的细节,其中包括如何在主题中同时使用级联样式表和图像,以及如何在运行时动态加载主题。(本文包含一些指向英文站点的链接。)

本页内容 引言创建和应用简单主题默认外观与命名外观将主题应用于整个应用程序主题与StyleSheetTheme图像和主题级联样式表和主题动态加载主题结论参考资料

引言

主题是MicrosoftASP.NET2.0的一项新增功能,使用此功能可以一次定义一组控件的外观,并可以将该外观应用于整个Web应用程序。例如,通过利用主题功能,您可以在一个中心位置为应用程序中的所有TextBox控件定义共同的外观,如背景颜色和前景颜色。使用主题功能可以轻松建立并维护整个网站外观的一致性。

主题与级联样式表并不相同。使用级联样式表可以控制浏览器上的HTML标记的外观。而主题则应用在服务器上,并适用于ASP.NET控件的属性。例如,您可以使用主题来指定GridView控件是否显示页眉或页脚,但不能使用级联样式表来执行此操作。

主题与母版页也并不相同。母版页也是ASP.NET2.0的一项新增功能,使用此功能可以为Web应用程序中的多个内容页指定共同的布局。使用主题可以控制页面中各个控件的外观,而母版页则不能。(在设计Web应用程序时,您可以并且可能将同时使用母版页和主题。)

在本文中,您要学习如何在ASP.NET2.0应用程序中利用主题功能。您会学习到如何在主题中同时使用级联样式表和图像。此外,我们还将学习如何在运行时动态加载主题。

返回页首

创建和应用简单主题

ASP.NET2.0不附带任何默认主题。当ASP.NET2.0发布之后,您可以从网站(例如www.ASP.net)上下载并使用主题。但是,现在,您必须从头开始创建自己要使用的所有主题。

此外,系统会警告您MicrosoftVisualWebDeveloper不提供任何用于创建主题的工具支持。尽管您确实可以使用VisualWebDeveloper来创建主题并将主题应用于网页;但在Web浏览器中实际打开页面前,您看不到将主题应用于页面的效果。换句话说,VisualWebDeveloper不提供任何用于创建主题的设计器支持。

了解这些警告后,我们继续创建简单主题。创建主题所需的第一步是在应用程序的根目录中创建一个名为Themes的新文件夹。(当ASP.NET2.0的BETA2版本发布后,您就需要将此文件夹命名为Application_Themes了。)当您尝试应用主题时,ASP.NETFramework将自动查找此文件夹。

创建了Themes文件夹之后,您可以通过向该Themes文件夹中添加子文件夹来创建一个或多个主题。我们将创建的第一个主题名为OrangeTheme。因此,我们需要在Themes文件夹中添加一个名为OrangeTheme的新文件。

然后,我们需要将Skin文件添加到OrangeTheme文件夹中。Skin文件是实际包含主题所应用的格式设置的文件。换句话说,该文件包含主题所应用的一个或多个控件外观。您可以将Skin文件命名为任何名称,只要以扩展名.Skin结尾即可。

一个主题可以包含一个Skin文件,也可以包含数百个Skin文件。您可以根据需要将Skin文件命名为任何名称。这没有关系,因为在将主题应用于页面时,ASP.NETFramework将把所有Skin文件合并在一起,而将这些文件视为单个Skin文件。

通过使用Theme或@Page指令的StyleSheetTheme属性,或者通过在应用程序配置文件中设置pages元素(ASP.NET设置架构)元素,都可以应用主题。VisualWebDeveloper只以可视方式显示使用StyleSheetTheme属性应用的主题。

创建页主题

在解决方案资源管理器中,右击要为其创建页主题的网站名称,然后单击“添加ASP.NET文件夹”。

单击“主题”。

如果App_Themes文件夹不存在,VisualWebDeveloper则会创建该文件夹。VisualWebDeveloper即为主题创建一个新文件夹,作为App_Themes文件夹的子文件夹。

键入新文件夹的名称。

此文件夹的名称也是页主题的名称。例如,如果您创建一个名为\App_Themes\FirstTheme的文件夹,则主题的名称为FirstTheme。

将构成主题的控件外观、样式表和图像的文件添加到新文件夹中。

我们将在主题OrangeTheme中使用列表1中的Skin文件(名为FormControls.Skin):

列表1:FormControls.Skin

<asp:TextBoxBackColor="Orange"ForeColor="DarkGreen"Runat="Server"/><asp:ButtonBackColor="Orange"ForeColor="DarkGreen"Font-Bold="True"Runat="Server"/>

您应当注意到了,列表1中的Skin文件包含TextBox和Button控件的声明。分别为这两个控件的BackColor和ForeColor属性提供了值。此外,还声明Button控件使用加粗字体。

请注意,您可以通过声明一个控件实例并设置一个或多个控件属性,从而使用Skin文件指定控件的外观。您可以在Skin文件中设置的控件属性是有限的。通常,仅可以设置外观属性。例如,您可以设置TextBox控件的BackColor、ForeColor甚至Text属性。但是不能在Skin文件中设置TextBox控件的AutoPostBack属性。

此外,您不能将外观用于每个ASP.NET控件。例如,您不能将外观用于Repeater控件、Literal控件或LoginView控件,也不能将外观用于User控件(但是,可以将外观应用于User控件中所包含的控件)。

将FormControls外观应用于页面之后,页面中的每个TextBox和Button控件都将使用在Skin文件中指定的属性值来显示。即便已经为该页面中的TextBox控件的BackColor属性指定了值,也是如此。Skin文件将替代页面中的控件属性。

列表2中的页面应用了主题OrangeTheme:

列表2:OrangePage.aspx

<%@PageTheme="OrangeTheme"%><html><headrunat="server"><title>OrangePage</title></head><body><formid="form1"runat="server">Enteryourname:<br/>

<asp:TextBoxID="txtName"Runat="Server"/><br/><br/><asp:ButtonID="btnSubmit"Text="SubmitName"Runat="Server"/></form></body>

</html>

转载于:https://www.cnblogs.com/jaryup/archive/2012/04/10/2440150.html

在 ASP.NET 2.0 中创建 Web 应用程序主题(一)相关推荐

  1. 在ASP.NET Core 2.0中创建Web API

    目录 介绍 先决条件 软件 技能 使用代码 第01步 - 创建项目 第02步 - 安装Nuget包 步骤03 - 添加模型 步骤04 - 添加控制器 步骤05 - 设置依赖注入 步骤06 - 运行We ...

  2. 探讨ASP.NET 2.0中的Web控件改进技术(2)

    我的观点是:ViewState有可能成为你最好的朋友,也有可能成为你最坏的敌人-这要依赖于你使用它的方式来决定.如果你在以前曾经使用过ViewState,那么,你肯定会喜欢新的ControlState ...

  3. 探讨ASP.NET 2.0中的Web控件改进技术(3)

    当你最开始在Visual Studio 2005中使用Windows表单控件或是ASP.NET Web控件时,你首先会注意到,在许多控件右上角出现一个箭头形状的小玩意儿(见图2中的示例).点击这个箭头 ...

  4. asp.net 2.0中加密web.config

    可以使用受保护配置来加密 Web 应用程序配置文件(如 Web.config 文件)中的敏感信息(包括用户名和密码.数据库连接字符串和加密密钥).对配置信息进行加密后,即使攻击者获取了对配置文件的访问 ...

  5. asp.net 2.0 中引用Web.config内的连接字符串的方法

    Web.config内容:<appSettings> //<add   key="SocutDataLink"   value="路径"/&g ...

  6. 探讨ASP.NET2.0中的Web控件改进技术

    全面探讨ASP.NET 2.0中的Web控件改进技术之概述(一) ASP.NET 2.0并没有抛弃1.1版本中的任何现有控件,而是增加了一组新的控件;同时还引入了若干新的控件开发技术.本系列文章将对这 ...

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

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

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

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

  9. 【初学者指南】在ASP.NET MVC 5中创建GridView

    介绍 在这篇文章中,我们将会学习如何在 ASP.NET MVC 中创建一个 gridview,就像 ASP.NET Web 表单中的 gridview 一样.服务器端和客户端有许多可用的第三方库,这些 ...

最新文章

  1. 机器学习特征筛选:相关系数法(correlation)
  2. c# 因其保护级别而不可访问。只能处理公共类型。
  3. linux之tr命令使用和总结
  4. linux windows多任务,windows是多用户多任务系统吗?
  5. 呀~ 一个.java的源文件可以写这么多类啊
  6. 阿里云护航罗振宇2018“时间的朋友”跨年演讲,与千万观众一起跨年 1
  7. 计算机专业中最受热议的4个专业,2018考研后身价倍增的4个专业盘点
  8. 以$开头的shell脚本的变量
  9. OpenCV怎么下载?OpenCV下载后怎么配置?
  10. java docx4j 目录_使用Docx4j创建word文档
  11. 保研之路——上交大电子系直博
  12. 广东四大姓氏,排名第三的是李姓,你的姓氏排名第几?
  13. 文件夹重命名导致软件图标不显示问题解决
  14. postman设置为中文
  15. php的seeder是什么,使用Laravel框架的Seeder实现自动填充数据功能
  16. TCL/TK脚本应用tclkit工具打包
  17. 台式电脑键盘错乱会出现计算机模式怎么办,​键盘按键错乱能修吗?台式电脑键盘按键错乱怎么修复?...
  18. FTP服务器有时候连接超时的问题
  19. 单片机的电子电路基本知识
  20. 度小满金融与南京银行牵手,背后有三层深意

热门文章

  1. 《Python自动化》学习笔记:百度云智能进行文字识别(代码干货)
  2. TypeScript算法专题 - blog9 - 单链表统计 : 返回指定值在单链表结点中的出现次数
  3. 删除下拉框只找23火星软件_下拉框搜索就找23火星软件/下拉框软件速来火星下拉...
  4. 两台计算机通过路由器连接网络,如何设置将两台计算机连接到Internet的路由器...
  5. python 路径拼接字符串_字符串游戏之拼接字符串
  6. source ubuntu 退出_ubuntu中安装JDK和Tomcat(一)
  7. [tensorflow]tensorflw2.1.0张量和变量介绍
  8. pip更新升级后Import Error:cannot import name main及pip安装包后出现环境错误拒绝访问...
  9. 第五篇、常用的SQL语句和函数介绍
  10. 项目常用工具类整理(二)--ckeditor的引用