`
isiqi
  • 浏览: 16595611 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

ASP.NET2.0中themes、Skins轻松实现网站换肤!

阅读更多
一、简介:
一看Themes、Skins这2名字就都知道是用来做什么的了吧,下面就说下它是做什么的(怎么都知道了还说,~_~),利用Themes我们可以很容易的更改控件、页面的风格,而不需要修改我们的代码和页面文件。
Themes文件被单独的放在1个App_Themes文件夹下面,与你的程序是完全分开的。

二、怎么使用Themes和Skins:
先看个非常简单的实例:

App_Themes\default\1.skin文件代码:

<asp:LabelFont-Bold="true"ForeColor="Red"runat="server"/>

default.aspx:文件代码:

<%@PageLanguage="C#"Theme="default"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headid="Head1"runat="server">
<title>PagewithExampleThemeApplied</title>
</head>
<body>
<formid="form1"runat="server">
<asp:LabelID="Label1"runat="server"Text="Hello1"/><br/>
<asp:LabelID="Label2"runat="server"Text="Hello2"/><br/>
</form>
</body>
</html>

可以看到我们在default.aspx并没有写如何的控制style的代码,但运行取发现label上的字都变成了粗体红色了,这就是1个最基本的theme例子。

App_Themes文件夹:
App_Themes文件夹位于程序的根目录下,App_Themes下必须是Theme名称的子文件夹,子文件夹中可以包含多个.skin和.css文件。下图中建立2个Theme,名称分别为default和default2:


使用themes
1、在1个页面中应用Theme:
如果想在某1个页面中应用Theme,直接在aspx文件中修改<%@ Page Theme="..." %>,比如你想这个页面应用default2 theme,设置<%@ Page Theme="default2" %>就OK

2、在所有页面应用同1个Theme:
如果要在所有页面上使用相同的Theme,在web.config中的<system.web>节点下加上句<pages theme="..."/>

3、让控件不应用Theme:
第1个例子中我们看到了2个Label的风格都变了,就是说.skin文件中的风格在页面上所有Label都起作用了。但有时我们希望某1个Label不 应用.skin中的风格,这时你只需设置Label的EnableTheming属性为false的时候就可以了。
也许你还想不同的label显示不同的风格,你只需设置label的SkinID属性就可以,见下面的实例:
App_Themes\default\1.skin

<asp:labelrunat="server"font-bold="true"forecolor="Red"/>
<asp:labelrunat="server"SkinID="Blue"font-bold="true"forecolor="blue"/>

deafult.aspx

<%@PageLanguage="C#"Theme="default"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headid="Head1"runat="server">
<title>PagewithExampleThemeApplied</title>
</head>
<body>
<formid="form1"runat="server">
<asp:LabelID="Label2"runat="server"Text="Hello2"SkinID="Blue"/><br/>
<asp:LabelID="Label3"runat="server"Text="Hello3"/><br/>
</form>
</body>
</html>

运行后就会发现2个label显示的风格不一样了。

4、其他方法:
前面已经说了在aspx文件头使用 <%@ Page Theme="..." %> 来使用theme,而用这个方法应用theme中的风格将会覆盖你写在aspx中的控件属性style。比如:
App_Themes\default\1.skin

<asp:LabelFont-Bold="true"ForeColor="Red"runat="server"/>

default.aspx

<%@PageLanguage="C#"Theme="default"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<htmlxmlns="http://www.w3.org/1999/xhtml">
<headid="Head1"runat="server">
</head>
<body>
<formid="form1"runat="server">
<asp:LabelID="Label1"runat="server"Text="Hello1"/><br/>
<asp:LabelID="Label2"runat="server"Text="Hello2"ForeColor="blue"/>
</form>
</body>
</html>

运行结果,所有的label的forecolor都为red。

而使用<%@ Page StyleSheetTheme="..." %>应用theme就不会覆盖你在aspx文件中写的属性style:

控件应用style属性的顺序如下:
a、StyleSheetTheme引用的风格
b、代码设定的控件属性(覆盖StyleSheetTheme)
c、Theme引用的风格(覆盖前面2个)

theme中包含CSS:
theme中也可以使用.css文件,当你把.css文件放在1个theme目录下后,在用到了这个theme的页面中自动会应用你的.css的

三、后台代码轻松为网站换府肤
前面讲的都是在aspx文件或web.config中应用theme,而在blog这样的每个用户都有不同的skin的网站中用上面的方法来实现换skin显然是不方便的。
下面就介绍怎么在后台代码中动态的引用theme来解决上面的情况,theme必须在page被请求的最早期就应用上,所以我们必须在Page_PreInit事件中写代码,代码很简单,就1句:
Page.Theme = "...";
这里我们只要从数据库中去读取每个用户设置的不同theme名就可以轻松实现每个用户都有不同的skin了。

------------------------------------------
以上都是个人的看法和体会,如有不妥处,还请大家多多指点,谢谢!

分享到:
评论

相关推荐

    asp.net 2.0动态网站开发教程

    母版页(Master Pages)是ASP.NET 2.0中的一个重要特性,它允许开发者创建一个统一的页面布局,然后所有子页面都可以继承这个布局,从而保持整个网站的视觉一致性。同时,主题(Themes)允许开发者定义样式和外观,...

    Asp.net 2.0高级编程(pdf)

    内容代码,使用VB.net和C# 两种解释 &lt;br&gt;第1章ASP.NET2.0概述 1 1.1简史 1 1.2ASP.NET2.0的目标 2 1.2.1开发人员的效率 3 1.2.2管理 5 1.2.3性能和可伸缩性 8 1.3ASP.NET2.0的其他新特性 8 ...

    精通ASP.NET2.0+SQL Server 2005项目开发 源码.rar

    《精通ASP.NET 2.0 + SQL Server 2005项目开发》是一部深度解析Web应用程序构建的教程,尤其关注ASP.NET 2.0框架与SQL Server 2005数据库系统的结合应用。该资源包含9个精心设计的案例,旨在帮助开发者逐步提升在...

    ASP.NET 2.0功能源码

    ASP.NET 2.0是微软开发的一个Web应用程序框架,它基于.NET Framework,为开发者提供了构建动态网站、Web应用和Web服务的强大工具。这个"ASP.NET 2.0功能源码"压缩包文件很可能是为了帮助学习者理解并探索ASP.NET 2.0...

    ASP.NET 2.0中轻松实现网站换肤

    ### ASP.NET 2.0中轻松实现网站换肤 #### 一、概述 在Web开发过程中,为了提高用户体验,很多网站提供了多种主题风格供用户选择。ASP.NET 2.0提供了一种简单的方法来实现这一功能,即通过使用**Themes**和**Skins*...

    ASP.NET第一步(基于C#和ASP.NET 2.0).rar

    对于初学者来说,"ASP.NET第一步(基于C#和ASP.NET 2.0)"是一个理想的入门资源,因为它涵盖了C#编程语言和ASP.NET 2.0的核心概念。 C#是微软开发的一种面向对象的编程语言,常用于.NET平台。在ASP.NET 2.0中,C#...

    ASP.NET 2.0动态网站开发基础教程(C# 2005)源文件

    ASP.NET 2.0是微软.NET Framework的一部分,它提供了一个用于构建动态网站、Web应用程序和服务的强大平台。本教程源文件基于C# 2005编程语言,旨在帮助初学者和开发者掌握ASP.NET 2.0的核心概念和技术。 在ASP.NET ...

    Asp.Net2.0网站开发实战.iso

    《Asp.Net2.0网站开发实战》是一个深入学习Asp.Net 2.0技术的教程资源,以ISO格式提供,原始大小超过50MB,但压缩后仅3MB。这个教程涵盖了Asp.Net 2.0的核心概念、开发工具和实际应用,是初学者和进阶开发者的重要...

    圣殿祭司配书盘 asp.net2.0开发详解 示范案例

    《圣殿祭司配书盘 ASP.NET 2.0 开发详解》是一个深入解析ASP.NET 2.0技术的教程资源,它包含了丰富的示范案例和配套数据库,旨在帮助开发者全面理解并掌握ASP.NET 2.0的开发技能。 ASP.NET 2.0是微软.NET Framework...

    ASP.NET 2.0动态网站设计教程 作者:李春葆讲义PPT

    ASP.NET 2.0是微软开发的一个用于构建Web应用程序的框架,它是在.NET Framework 2.0版本上构建的,提供了丰富的功能和工具,使得开发者能够更高效地创建功能强大的动态网站。李春葆的这本《ASP.NET 2.0动态网站设计...

    asp.net 2.0 插件下载

    在这个主题中,我们主要讨论的是针对ASP.NET 2.0的插件下载,特别是与C#编程语言和Visual Studio 2008(VS2008)相关的插件。 首先,我们需要理解ASP.NET 2.0的核心特性。它引入了诸如页面生命周期管理、母版页...

    ASP.NET 2.0动态网站开发教程(很实用)

    ASP.NET 2.0改进了其前身ASP.NET 1.x的许多方面,引入了诸如母版页(Master Pages)、主题(Themes)、皮肤(Skin)、站点地图(Site Map)等新特性,极大地提高了开发效率和代码复用性。母版页允许开发者创建统一的...

    圣殿祭司的ASP.NET 2.0开发详解c# 书中例子代码

    ASP.NET 2.0是微软推出的用于构建动态网站、Web应用程序和Web服务的框架,它基于.NET Framework,为开发者提供了强大的开发工具和丰富的功能。在《圣殿祭司的ASP.NET 2.0开发详解——使用C#》一书中,作者深入浅出地...

    ASP.NET 2.0网页制作彻底研究(程序代码)

    6. **主题(Themes)和皮肤(Skin)**:通过主题和皮肤,开发者可以轻松地改变整个网站的外观和感觉,实现一致的UI设计。 7. **站点地图(Site Map)**:站点地图提供了一种结构化的方式来定义网站的导航结构,可...

    ASP.NET 2.0网站开发实例教程[电子教案]

    本教程"ASP.NET 2.0网站开发实例教程[电子教案]"旨在帮助学习者通过实例深入理解ASP.NET 2.0的核心概念和技术,以实现在互联网上构建高效、动态的Web应用。 首先,ASP.NET 2.0的核心特性包括控件导向的编程模型,它...

    asp.net2.0全程指南

    4. AJAX支持:ASP.NET 2.0的UpdatePanel和ScriptManager组件使开发者能轻松实现局部刷新,提升用户体验。 5. 工作流和企业服务:利用Windows Workflow Foundation和Enterprise Services进行复杂的业务流程编程。 四...

    精通ASP.NET2.0网络应用系统开发 随书光盘ch07

    ASP.NET 2.0还包括了母版页(Master Pages)和站点导航(Site Navigation)功能,前者让网站保持一致的布局变得简单,后者则帮助构建易于使用的导航结构。同时,主题(Themes)和皮肤(Skin)机制可以实现全局的UI...

    《Asp.net 2.0高级编程》(pdf版).rar

    此外,主题(Themes)和皮肤(Skin)是2.0版的一大特色,它们允许开发者轻松实现全局的界面样式统一。书里可能会讲述如何创建和应用主题,以及如何通过皮肤文件定义控件的外观。 Asp.net 2.0的配置管理也有了很大的...

    ASP.NET 2.0快速入门(14):ASP.NET 2.0管理你的asp.NET应用

    ASP.NET 2.0是.NET Framework 2.0的一部分,它引入了诸如控件生命周期改进、数据绑定模型、母版页(Master Pages)、主题(Themes)、皮肤(Skins)和网站导航(System.Web.UI.WebControls.Navigation)等新特性,提高了...

Global site tag (gtag.js) - Google Analytics