惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
小众软件
小众软件
The Cloudflare Blog
博客园 - 【当耐特】
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
酷 壳 – CoolShell
酷 壳 – CoolShell
WordPress大学
WordPress大学
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Visual Studio Blog
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
美团技术团队
S
SegmentFault 最新的问题
宝玉的分享
宝玉的分享
博客园 - 叶小钗
月光博客
月光博客
Apple Machine Learning Research
Apple Machine Learning Research
T
Tailwind CSS Blog
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
J
Java Code Geeks
Y
Y Combinator Blog
D
Docker
Microsoft Azure Blog
Microsoft Azure Blog

博客园 - blue1000

C#批量生成大数据量无重复随机数据的另类高效实现 [转载]安装网银安全控件 近期学习SQL Server,收藏的几个学习教程网址备忘 DataColumn.Caption属性应用到DataGridView.HeaderText的方法 飞梭TXT文本数据处理百宝箱 - 极速、高效、灵活 中国父母十个错误教育观念[转] asp.net根据域名查ip C#版 - blue1000 - 博客园 asp.net 2.0教程 登录系列控件 asp.net 2.0教程 成员资格和角色管理 asp.net 2.0教程 Web部件WebPart asp.net 2.0教程 个性化用户配置 asp.net 2.0教程 数据缓存 asp.net 2.0教程 数据绑定控件 asp.net 2.0教程 数据源控件2 asp.net 2.0教程 数据源控件 asp.net 2.0教程 其它服务器控件 asp.net 2.0教程 网站导航控件 asp.net 2.0教程 母版页 asp.net 2.0教程 C# 2.0匿名方法、迭代器、局部类
asp.net 2.0教程 主题和皮肤
blue1000 · 2007-10-08 · via 博客园 - blue1000

尊重作者,请保留 www.it55.com 链接字样。

这一节我们联系asp.net 2.0新特性:主题和皮肤。

主题和皮肤的制作
新建web网站,在项目上右键“添加ASP.NET文件夹”>>>“主题”,并将默认生成的“主题1”重命名为“blue”:

 

在blue主题上右键“添加新项”,

弹出的设置框中选择“外观文件”,并命名为“button.skin”,最后“添加”

修改button.skin内容如下:

<%--
默认的外观模板。以下外观仅作为示例提供。

1. 命名的控件外观。SkinId 的定义应唯一,因为在同一主题中不允许一个控件类型有重复的 SkinId。

<asp:GridView runat="server" SkinId="gridviewSkin" BackColor="White" >
   <AlternatingRowStyle BackColor="Blue" />
</asp:GridView>

2. 默认外观。未定义 SkinId。在同一主题中每个控件类型只允许有一个默认的控件外观。

<asp:Image runat="server" ImageUrl="~/images/image1.jpg" />
--%>
<asp:Button runat="server" BackColor="LightSteelBlue" BorderStyle="None" ForeColor="Navy" />
<asp:Button runat="server" BackColor="LightSteelBlue" BorderStyle="Groove" ForeColor="Navy" Text="Button" BorderColor="RoyalBlue" SkinID="withBorder" />

在blue主题上右键“添加新项”,弹出的设置框中选择“样式表”,并命名为“style.css”,最后“添加”
style.css内容如下:

body { text-align:center; background-color:Gray;
}

Default.aspx内容:

<%@ Page Language="C#" AutoEventWireup="true" Theme="blue"  CodeFile="Default.aspx.cs" Inherits="_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 runat="server">
    <title>主题和皮肤</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    整个页面因为应用了blue主题中的style.css,所以内容居中,背景为灰色
    <br />
        <asp:Button ID="Button1" runat="server" Text="Button" /><br />这个按钮没有设置SkinId,就调用默认外观
        <br />
        <br />
        <asp:Button ID="Button2" runat="server" Text="Button" SkinID="withBorder" /><br />这个按钮将根据SkinId调用特定外观
    </div>
    </form>
</body>
</html>

注:如果页面中的控件有自己的样式或外观定义,那么该定义将覆盖主题的定义。运行结果:

关于主题的应用
上述在页面头部通过Theme="主题名称"来应用主题的方式是页面级主题应用;应用程序级主题应用方法如下:
在Web.config文件中配置如下节:
<configuration>
  <system.web>
    <pages Theme="主题名称" />
  </system.web>
</configuration>
注:某个文件夹下的Web.config中的Theme设置将覆盖应用程序的Theme设置.

关于动态加载主题
因为page对象的Theme属性只能在页面的PreInit事件发生过程中或者之前进行设置,所以我们必须在Page_PreInit事件处理程序中修改Theme属性值,以达到动态调用主题的目的.
具体实现方法就不再叙述了,大家可以查看这篇文章:Asp.net 2.0中动态加载主题的两种实现方法

关于主题和样式的内容的基础内容大概只有这些了,下一节我们将一起学习: asp.net 2.0新特性 站点导航控件