Master Page主题以及皮肤的使用

2008年01月09日 星期三 上午 10:35

一、主题

经常看到网站上可以由用户自定义显示样式,当然这些多半是网站已提供的,如126邮箱。这其实是采用了多种主题来实现的,主题应该都明白是什么吧,不明白就看下window的主题。

示例:

在网站项目中,添加主题文件夹,取个名字,这样就添加了一个主题,一个主题里包含了多个主题文件,可以添加主题(.skin)、CSS、XML等,这些文件都属于这一个主题,这里主要记一下.shin文件的写法,里面的代码和页面的代码没什么两样,不过不能带ID,也不必要带Text ,如:<asp:Label runat="server"   ForeColor="blue"></asp:Label>就可以了。那么在页面中,最上面那行,<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default"
    Theme="t" %>这里,把theme属性改为你自己的主题就行了,很简单吧。

这里的SKIN文件里写的那行只是default样式,就是说只要引用了这个主题的页面。所以的Lable控件都会显示成这个样子,那如果有特殊的Lable不想显示成这样,怎么办呢,也很简单,

<asp:Label runat="server" ForeColor="red"SkinID="sp1"></asp:Label>
<asp:Label runat="server" ForeColor="green" SkinID="sp2"></asp:Label>

这里和上面不同的就是加了个SkinId,同样,。页面上要使用特殊控件的控件,也要加SkinID, <asp:Label ID="Label2" runat="server" Text="Label" SkinID="sp1"></asp:Label>这样就行了,

当然,这样如果还想在页面中重新设定控件的样式是不能的(如果是引用了CSS,而不是直接写属性就可以),可以试一下,如果想在页面中可以重新设定,就必须在引用主题那个地方做一下改动,用StylesheetTheme来代替Theme,这样如果想在页面中进一步设定显示样式就没问题了。

主韪的使用就是这样了,很简单的,主要是会写CSS,这样做出来的主题就好看了,当然。2.0之所以引入这个东西,我觉得是方便UI和PG的分工吧,毕竟不会相互影响工作。

还有一个最关键的东西,如何更换主题,其实也很简单,都知道了怎么设定主题了,那更换不就EASY了吗。只要把 Page.Theme 设一个已存在的主题就行了,不过这行代码一定要在Page_PreInit事件或之前写才对,如:

protected void Page_PreInit(object sender, EventArgs e)
    {
        if (Request["theme"] != null)
        {
            Page.Theme = Request["theme"];
        }
    }

很好用吧。呵呵。

二、母版,

关于这个东西我觉得太简单了,简单写几句就行了,主要是用来统一风格的,比如一个网站有统一个头,脚,或者还有统一的两边,很明显。不相同的只有中间那部分了,在HTML中,可以使用框架来完成,每个页面引用头、脚页,母版也是同样的功能,但是更方便了。

在网站中添加一个母版页(MasterPage.master),她会有一个特殊的控件:<asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
        </asp:contentplaceholder>

这个控件就是显示不同部分的,当然可以自己添加多个这样的控件,在母版页上可以按自己的想法布置好,当添加一个asp.net页面的时候,要注意把“选择母版页”这个勾选上,同时选择母版,这时,添加的页面就只能编辑contentplaceholder 控件中的内容了,这样也就实现了同一个网站或模块同一风格的定义。EASY。

posted @ 2008-02-01 11:00  point.deng  阅读(447)  评论(0编辑  收藏  举报