zoukankan      html  css  js  c++  java
  • ASP.NET 2.0 中的 Theme 功能

    ASP.net 2.0 中新增加了 Theme 的功能,它的出现能让网站实现换肤更加容易。

    Theme 的实现包括:CSS、Skin、MasterPage。

    CSS 是用于控制所有 Html 标记的外观。

    Skin 是用于控制所有 ASP.NET 服务器调整的外观,并且可以通过属性 CssClass 定义它的 CSS 样式。

    MasterPage 是 *.aspx 页面模版,不过它没有被定义到 Theme 中。

    ------------------------------------------------

    ·创建 Theme 的例子:

    1、在 web 项目中创建 App_Themes 目录。它是预定义的目录,ASP.NET 2.0 会自动识别其目录下的 Theme 。

    2、在 App_Themes 目录创建 orangeTheme、BlueTheme 两个子目录。

    3、为 App_Themes 下的每个子目录添加 Skin 文件,如 Control.Skin 。ASP.NET 2.0 会自动分析每一个 Skin 文件,在这里的命名只需要为了开发时方便分类。

    4、也可以为  App_Themes 下的每个子目录添加 CSS 文件。ASP.NET 2.0 也会自动将每一个 CSS 文件添加到每一个使用此样式的页面中去。

    ·定义页面内容与 Theme 样式

    1、default.aspx 页面定义如下:

    <%@ Page Theme="OrangeTheme" %>
    <html>
    <head runat="server">
    <title>Orange Page</title>
    </head>
    <body>
    <form id="form1" runat="server">
    Enter your name:<br />
    <asp:TextBox ID="txtName" Runat="Server" />
    <br /><br />
    <asp:Button ID="btnSubmit" Text="Submit Name" Runat="Server"/>
    </form>
    </body>
    </html>

    2、在  OrangeTheme 主页的 Control.Skin 文件中定义如下:

    注意:只能指定外观属性,不能指定如 AutoPastback 等属性。

    默认未命名的 Skin 将会为所有 TextBox 类型定义外观。

    <asp:TextBox BackColor="Orange" ForeColor="DarkGreen" Runat="Server" />
    <asp:Button BackColor="Orange" ForeColor="DarkGreen" Font-Bold="True" Runat="Server" />

    已经命名 SkinID 的将可以为指定 TextBox 类型定义外观。

    <asp:TextBox SkinID="Title" BackColor="Orange" ForeColor="DarkGreen" Runat="Server" />

    ·在页面中使用 Theme

    1、在 Aspx 文件顶部 <%@ Page %> 中添加 Theme="Default" 属性。这样它就可以使用 Default 主题了。

    2、如果想到在整个网站应用某个 Theme 就需要在 Web.Config 定义。

    <configuration>
      <system.web>
        <pages theme="OrangeTheme" />
      </system.web>
    </configuration>

    这样的定义相当于默认一个 Theme 在所有网站文件中,使用时仍可以为每个页面定义 Theme 。
    Skin 部分会使用 Page 面中定义的 Theme ,而 CSS 会重载默认主页中的 CSS 样式表。

    3、指定好 Theme 之后所有的外观都会使用 Skin 中定义的。你也可以指定控件的 SkinID 来定义单独外观。

    4、如果想用编程方式定义 Theme 必需在 Page_PreInit事件中处理,如下:

    void Page_PreInit(object sender, EventArgs e)
    {
        Page.Theme = Request["ThemeName"];
        如果需要以编程的方式为 Page 载入 MasterPage 文件,也需要在此定义。
        this.MasterPageFile = Request["MasterPageFile"];
    }

    了解了这些技术,将会让网站更加多变。

  • 相关阅读:
    【LCT维护基环内向树森林】BZOJ4764 弹飞大爷
    【LCT】BZOJ3091 城市旅行
    【LCT+主席树】BZOJ3514 Codechef MARCH14 GERALD07加强版
    【最大权闭合子图】bzoj4873 [Shoi2017]寿司餐厅
    【LCT】BZOJ2049 [SDOI2008]Cave 洞穴勘测
    【有上下界的网络流】ZOJ2341 Reactor Cooling(有上下界可行流)
    【费用流】BZOJ1061: [Noi2008]志愿者招募(这题超好)
    从输入url到页面加载的过程
    forEach和map的区别
    理解 JavaScript 对象原型、原型链如何工作、如何向 prototype 属性添加新的方法。
  • 原文地址:https://www.cnblogs.com/zhuawang/p/889337.html
Copyright © 2011-2022 走看看