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

原创 2006年06月08日 11:15:00
ASP.NET 2.0中轻松实现网站换肤
    5月1日 20时12分

   一、简介:

  利用Themes我们可以很容易的更改控件、页面的风格,而不需要修改我们的代码和页面文件。Themes文件被单独的放在1个App_Themes文件夹下面,与你的程序是完全分开的。

  二、怎么使用Themes和Skins:

  先看个非常简单的实例:

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

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

  default.aspx:文件代码:

<%@ Page Language="C#" Theme="default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Page with Example Theme Applied</title>
</head>
<body>
<form id="form1" runat="server">
<asp:Label ID="Label1" runat="server" Text="Hello 1" /><br />
<asp:Label ID="Label2" runat="server" Text="Hello 2" /><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:label runat="server" font-bold="true" forecolor="Red" />
<asp:label runat="server" SkinID="Blue" font-bold="true" forecolor="blue" />

deafult.aspx

<%@ Page Language="C#" Theme="default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Page with Example Theme Applied</title>
</head>
<body>
<form id="form1" runat="server">
<asp:Label ID="Label2" runat="server" Text="Hello 2" SkinID="Blue" /><br />
<asp:Label ID="Label3" runat="server" Text="Hello 3" /><br />
</form>
</body>
</html>

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

  4、其他方法:

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

  App_Themes/default/1.skin

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

  default.aspx

<%@ Page Language="C#" Theme="default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
</head>
<body>
<form id="form1" runat="server">
<asp:Label ID="Label1" runat="server" Text="Hello 1" /><br />
<asp:Label ID="Label2" runat="server" Text="Hello 2" 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中轻松实现网站换肤

一、简介:   利用Themes我们可以很容易的更改控件、页面的风格,而不需要修改我们的代码和页面文件。Themes文件被单独的放在1个App_Themes文件夹下面,与你的程序是完全分开的。  ...
  • smartyaya
  • smartyaya
  • 2006年12月30日 10:37
  • 1068

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

ASP.NET 2.0中轻松实现网站换肤  一、简介:  利用Themes我们可以很容易的更改控件、页面的风格,而不需要修改我们的代码和页面文件。Themes文件被单独的放在1个App_Themes文...
  • takeie
  • takeie
  • 2007年05月12日 16:11
  • 547

跟我学做c#皮肤美化(七)----窗体换肤

这个系列好久都没有更新了,貌似上一篇还是在今年五月份发布的。呵呵,不感慨了,还是开始介绍今天的内容吧! 这里说明一下这次实现的换肤都是基于贴图换肤的,并不可以像QQ那样还可以调整色调甚至自定义图片为背...
  • cjcy1984001
  • cjcy1984001
  • 2010年11月16日 09:03
  • 873

JS实现网页换肤

自己看的js的文档,但是自己敲得时候就总是出错,得不到想要的效果,所以找了个视频学习,顺带把每一节的代码手敲了一遍,权当练手。 下面是js换肤的代码 html文件(JS): 换肤测试 ...
  • Abyss_sliver
  • Abyss_sliver
  • 2017年09月22日 18:10
  • 514

前端基础案例分享:制作百度换肤效果

知识点:html加css,标签运用、样式讲解、静态开发布局、行业标准。JS基础、if判断、jq方法 Dom操作、逻辑思维。...
  • qq_39345165
  • qq_39345165
  • 2017年10月28日 13:12
  • 129

ASP.NET 2.0网站换肤实现过程

一、简介:   利用Themes我们可以很容易的更改控件、页面的风格,而不需要修改我们的代码和页面文件。Themes文件被单独的放在1个App_Themes文件夹下面,与你的程序是完全分开的。   二...
  • gaofang2009
  • gaofang2009
  • 2010年02月24日 10:32
  • 317

less给网站换肤

LESSCSS是一种动态样式语言,属于CSS预处理语言的一种,它使用类似CSS的语法,为CSS的赋予了动态语言的特性,如变量、继承、运算、函数等,更方便CSS的编写和维护。 LESSCSS可...
  • queenzjl
  • queenzjl
  • 2016年12月07日 17:39
  • 1222

网页前端 网页换肤(js)

网页换肤原理:需要准备不同的肤色的css的样式表, 涉及到: 点击事件(onclick) id属性,所有的都可以有id属性。 所以:要求准备: 1、需要哪些样式,点击之后会改变href 2...
  • u012496940
  • u012496940
  • 2015年07月18日 12:41
  • 707

DOM实现网页一键换肤

在个性化页面制作里经常会用到一键换肤功能,其中包括更换背景、文字颜色、按键背景色等等一套样式。这个功能可以用DOM完成。 1、思路 设计四个按键,分别对应四套样式,点击样式即可改变背景。 代码思路是,...
  • beimingmuyu
  • beimingmuyu
  • 2016年04月11日 10:25
  • 792

ASP.NET2.0中轻松实现网站换肤

1.简介   新建App_Themes文件夹:    项目 - 右键 - 添加 - 添加ASp.net文件夹 - 主题利用Themes我们可以很容易的更改控件、页面的风格,而不需要修改我们的代码和页面...
  • leapenemc0907
  • leapenemc0907
  • 2010年11月01日 14:15
  • 187
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP.NET 2.0中轻松实现网站换肤
举报原因:
原因补充:

(最多只允许输入30个字)