zoukankan      html  css  js  c++  java
  • asp.net2.0揭秘读书笔记三:使用主题设计网站

     

    一、创建主题

    在名为App_Themes的应用程序的文件夹中新增文件夹就可以创建主题。在App_Themes中添加的每一个文件夹都代表一个主题。

    在主题文件夹中比较重要的文件类型有皮肤文件和CSS文件。

    二、在主题中添加皮肤

    一个主题可能包含一个或多个皮肤文件。可以通过皮肤来修改所有具有皮肤效果的ASP.NET控件属性。

    例如,将Web应用程序中所有的TextBox控件的背景颜色设为黄色并选择dotted作为它的边框样式。在App_Themes文件夹下建立Simple文件夹,然后在Simple文件夹中建立TextBox.skin文件,该文件代码如下所示:

    <asp:TextBox BackColor=”Yellow” BorderStyle=”Dotter” runat=”Server”/>

    注意上面代码里面runat是必须的,而且不能带ID属性。

    主题文件夹下可以拥有一个或上百给皮肤文件,但在一个主题文件夹下的所有的文件都会编译成一个主题类。

    上面的主题文件夹Simple如果要在某个页面使用其定义的主题,则使用如下代码:

    <%@ Page Language=”C#” Theme=”Simple”%>

    如果该页面的TextBox控件属性EnableTheming设置为false,则主题不起作用。

    1、 创建命名皮肤

    在定义命名皮肤时比定义默认皮肤增加SkinID属性,在应用主题页面指定控件的SkinID属性为命名皮肤定义的SkinID属性名称即可。

    2、 ThemesStyleSheetThems

    使用Themes指定应用某个主题时候,主题定义皮肤会覆盖页面中控件自定义的皮肤。

    而使用StyleSheetThems指定则不会覆盖。

    <%@ Page Language=”C#” StyleSheetThems=”Simple”%>

    3、 禁用皮肤

    每个控件都包含有EnableTheming属性,设置为false则禁用主题皮肤。

    4、 Web配置文件中注册主题

    <system.web>

    <pages theme=”Simple” />

    </system.web>

    在启用程序中的主题后,可以在特定页面中通过

    <%@ Page Language=”C#” EnableTheming=”false”%>

    来禁用主题。

    三、在主题中添加CSS

    除了使用主题皮肤外,也可以使用CSS来控制页面上HTML元素和ASP.NET控件的皮肤。如果在主题文件夹下添加了CSS文件,则在页面应用主题时也会自动应用CSS

    四、创建全局主题

    此种情况本人应用较少,跳过。对于很少用到的知识而且又不是基础性的,我的学习原则是知道有这个应用即可,待有机会真正用上时再学习也不迟。不然在技术的汪洋大海里面永远也不知岸在哪里。

    五、动态应用皮肤

    通过处理页面的Page_PreInit事件可以在页面动态应用主题。在请求页面时,这是第一个被触发的事件。在其后的Page_LoadPage_PreRender等事件中是不能动态应用主题的。

    <%@ Page Language="C#" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

    <script runat="server">

        protected void Page_PreInit(object sender, EventArgs e)

        {

            if (Request["theme"] != null)

            {

                switch (Request["theme"])

                {

                    case "Green":

                        Profile.userTheme = "GreenTheme";

                        break;

                    case "Pink":

                        Profile.userTheme = "PinkTheme";

                        break;   

                }

            }

            Theme = Profile.userTheme;

        }

    </script>

    <html xmlns="http://www.w3.org/1999/xhtml" >

    <head runat="server">

        <title>Dynamic Theme</title>

    </head>

    <body>

        <form id="form1" runat="server">

        <div class="content">

       

        <h1>Dynamic Theme</h1>

        Please select a Theme:

        <ul>

        <li>

            <a href="DynamicTheme.aspx?theme=Green">Green Theme</a>

        </li>

        <li>

            <a href="DynamicTheme.aspx?theme=Pink">Pink Theme</a>

        </li>

        </ul>

       

        </div>

        </form>

    </body>

    </html>

    通过页面的Theme属性,特定主题可以应用到此页面。通过在PreInit事件中将主题名称赋给Theme属性,主题将会应用到此页面。

    当把信息保存到Profile对象中时,在浏览多个站点时这个信息仍然会保留。所以如果用户选择了一次自己喜欢的主题,那么当用户在以后再次返回到此站点时仍然会应用此主题。

    Web.Config文件中定义Profile

    <system.web>

        <!--

        <pages theme="Simple3" />

        -->

        <profile>

          <properties>

            <add name="userTheme" />

          </properties>

        </profile>

       

     </system.web>

  • 相关阅读:
    Spring Boot @DeleteMapping(转)
    白天和夜晚分类
    使用HSV色彩空间遮罩绿色区域
    HSV转换
    HSV 和 HLS颜色空间
    python 处理图像出现The lower bounary is neither an array of the same size and same type as src, nor a scalar in function inRange
    读取图片上一点的像素
    python 实现A*算法
    uda 4.C++面向对象编程
    uda 3.C++二维向量
  • 原文地址:https://www.cnblogs.com/zoupeiyang/p/1401168.html
Copyright © 2011-2022 走看看