<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>chisdy.A.Pro &#187; Dotnet</title>
	<atom:link href="http://chisdy.com/category/dotnet/feed" rel="self" type="application/rss+xml" />
	<link>http://chisdy.com</link>
	<description>Don&#039;t let a little fear stop you from getting what you want!</description>
	<lastBuildDate>Sat, 21 Apr 2012 09:35:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>ASP.NET2.0使用主题</title>
		<link>http://chisdy.com/64.chisdy</link>
		<comments>http://chisdy.com/64.chisdy#comments</comments>
		<pubDate>Sun, 03 Feb 2008 16:16:25 +0000</pubDate>
		<dc:creator>chisdy</dc:creator>
				<category><![CDATA[Dotnet]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[skin]]></category>

		<guid isPermaLink="false">http://chisdy.com/dotnet/64.html</guid>
		<description><![CDATA[1．概述 上次做的例子基本实现了功能，但界面看上去比较丑陋。你可以每个控件都设置其表现属性，以使界面美观一些。但这样做毕竟太麻烦。 ASP.NET提供了一种使界面样式统一的方法，就是皮肤主题。 图2.1 添加主题 2．增加主题 在解决方案资源管理器中，在站点上单击右键，选择“添加ASP.NET文件夹/主题”，创建一个皮肤主题，并取名为Default。 可以看到网站中自动创建了两级目录“App_Themes/Default”。一个项目中可以创建多个主题，但都必须放到App_Themes目录下。我们创建的Default就是一个主题，主题下面包含一个skin文件和多个css文件，用于设定界面样式。 在Default上点击右键，选择“添加新项”，然后选择“外观文件”，点击“添加”按钮，就在Default主题下创建了一个皮肤文件SkinFile.skin。 如果添加新项时选择添加“样式表”，就可以添加一个css文件。我们添加两个css文件GridStyle.css和StyleSheet.css。前者用于设置GridView的样式，后者用于设置其它控件样式。 样式表的内容比较丰富，大家可以找相关资料学习。这里我们只是用简单的示例来说明其用法。 2.1 StyleSheet.css文件 样式表中，可以设置多个样式单元，每个单元有一个名字，称为类名。我们在文件中键入以下代码。 body { FONT-SIZE: 12px; MARGIN: 0px; CURSOR: default; FONT-FAMILY: Tahoma, Verdana; background-color: #F2F2F2; } .commonText { font-size: 12px; } .MsgText { font-size:12px; color:Red; } .PromptText { &#8230; <a href="http://chisdy.com/64.chisdy">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>1．概述<br />
上次做的例子基本实现了功能，但界面看上去比较丑陋。你可以每个控件都设置其表现属性，以使界面美观一些。但这样做毕竟太麻烦。</p>
<p>ASP.NET提供了一种使界面样式统一的方法，就是皮肤主题。</p>
<p>图2.1 添加主题</p>
<p>2．增加主题<br />
在解决方案资源管理器中，在站点上单击右键，选择“添加ASP.NET文件夹/主题”，创建一个皮肤主题，并取名为Default。</p>
<p>可以看到网站中自动创建了两级目录“App_Themes/Default”。一个项目中可以创建多个主题，但都必须放到App_Themes目录下。我们创建的Default就是一个主题，主题下面包含一个skin文件和多个css文件，用于设定界面样式。</p>
<p>在Default上点击右键，选择“添加新项”，然后选择“外观文件”，点击“添加”按钮，就在Default主题下创建了一个皮肤文件SkinFile.skin。</p>
<p>如果添加新项时选择添加“样式表”，就可以添加一个css文件。我们添加两个css文件GridStyle.css和StyleSheet.css。前者用于设置GridView的样式，后者用于设置其它控件样式。</p>
<p>样式表的内容比较丰富，大家可以找相关资料学习。这里我们只是用简单的示例来说明其用法。<span id="more-64"></span></p>
<p>2.1 StyleSheet.css文件<br />
样式表中，可以设置多个样式单元，每个单元有一个名字，称为类名。我们在文件中键入以下代码。</p>
<p><code><br />
body {</p>
<p>FONT-SIZE: 12px;</p>
<p>MARGIN: 0px;</p>
<p>CURSOR: default;</p>
<p>FONT-FAMILY: Tahoma, Verdana;</p>
<p>background-color: #F2F2F2;</p>
<p>}</p>
<p>.commonText</p>
<p>{</p>
<p>font-size: 12px;</p>
<p>}</p>
<p>.MsgText</p>
<p>{</p>
<p>font-size:12px;</p>
<p>color:Red;</p>
<p>}</p>
<p>.PromptText</p>
<p>{</p>
<p>font-size:16px;</p>
<p>color:#3795D2;</p>
<p>}</p>
<p>.BtnStyle</p>
<p>{</p>
<p>font-size:12px;</p>
<p>text-decoration:none;</p>
<p>background-color: #FFFFFF;</p>
<p>border-style: groove</p>
<p>}<br />
</code></p>
<p>Body样式主要是用来设置页面信息的，我们设置了字体大小为12px（Font-Size:12px）、字体（Font-Family）、背景色（backgroud-color:#F2F2F2）及其它一些属性。</p>
<p>对于文本，我们设定了三种样式：commonText仅设置了文本的大小，MsgText设置为红色字体，PromptText则是蓝色16px的字体。至于程序如何把它们区分开来，我们从SkinFile.Skin中可以看到。</p>
<p>BtnStyle为按钮的样式。</p>
<p>2.2 SkinFile.Skin文件<br />
首先，css文件中的文本有三种样式，我们在skin中如何区分呢？答案是SkinID，如下代码所示：</p>
<p>我们设置了三种Label的样式，可以看到这三种样式通过CssClass属性区分开，它后面引号中的值就是css文件中的样式类名。其中有两个Label有SkinID属性，而另外一个没有设置，没有SkinID的是默认样式，有SkinID的在指定了控件的SkinID并且名称与其一致时才被使用。至于它们的使用，后面我们再介绍。</p>
<p>下面在skin文件中再输入以下代码，分别创建DropDownList、TextBox的皮肤样式以及两个Button的样式。两个Button的区别是：没有SkinID具有固定宽度65px，有SkinID的没有设置宽度。</p>
<p>图3.1 设置页面皮肤</p>
<p>3．皮肤的使用<br />
3.1 单个页面中使用主题<br />
（1）打开default.aspx文件进入设计模式。</p>
<p>（2）属性最上面一个列表框选择DOCUMENT。</p>
<p>（3）找到Theme属性，点击后面的列表框箭头，会看到我们刚增加的主题“Default”，选中它。</p>
<p>（4）运行程序，会看到整个页面使用了没有SkinID属性的那些样式。</p>
<p>（5）任意选中一个Label，找到SkinID属性，这个属性是空的。点击后面的列表框箭头，会发现有两个可选项，就是skin文件中指定的Label那两个主题，选择一个，运行并看一下效果。</p>
<p>通过以上实验我们可以看到，如果控件不指定SkinID，则使用skin文件中那些没有SkinID属性的样式；如果指定了，则使用skin文件中SkinID与之同名的那些样式。</p>
<p>3.2 在整个网站中使用主题<br />
上面讲了主题的使用方法，但如果一个界面一个界面的设置主题，显得有些麻烦，能不能在整个网站中都使用同一种主题，而不必每个页面都设置呢。</p>
<p>我们把Default.aspx文件的Theme属性删除，然后打开web.config，找到，紧跟这个标签下面输入：</p>
<p>然后运行代码，发现运行效果跟刚才是一样的。</p>
<p>这一句的意思就是对所有网页使用同一主题Default。那么我们前面说了，可以在网站中创建多个主题，如何使用其它主题呢？如果我们配置了web.config的默认主题，那么页面使用这个默认主题，除非页面设置了Theme属性指定使用其它主题。</p>
<p>4．关于GridView的主题<br />
选中页面中GridView，看它的属性中样式那一组，会看到有很多样式需要设置。</p>
<p>像GridView控件，它可以设置表头样式(HeaderStyle)、显示项的样式（RowStyle）、交替行样式（AlternatingRowStyle，就是偶数行用这个样式，奇数行用RowStyle的样式）、分页时页码样式等等。</p>
<p>那么我们就需要设置这些样式。</p>
<p>4.1 GridStyle.css<br />
该文件设置了几个样式，有些是在skin文件中重复使用的：<br />
<code><br />
.GridItem {</p>
<p>font-size: 12;</p>
<p>background-color:#D6EBFF;</p>
<p>text-align:left;</p>
<p>}</p>
<p>.GridEdit</p>
<p>{</p>
<p>font-size: 12;</p>
<p>background-color:#D6EBFF;</p>
<p>text-align:left;</p>
<p>}</p>
<p>.GridHeader</p>
<p>{</p>
<p>font-size:12;</p>
<p>background-color:#00AFE8;</p>
<p>text-align:left;</p>
<p>}</p>
<p>.GridAlter</p>
<p>{</p>
<p>font-size:12;</p>
<p>background-color:#D6DBEF;</p>
<p>text-align:left;</p>
<p>}</code></p>
<p>4.2 SkinFile.skin文件<br />
在主题文件中，增加以下代码：</p>
<p>我们可以看到，显示项样式RowStyle和分页页码PagerStyle使用了相同的样式GridItem。表头和选中项使用了相同的样式GridHeader。当然你也可以给它们设置不同的样式，我设置成相同是为了说明也可以这样用。</p>
<p>再次运行程序，浏览效果。</p>
<p>5．设置主题的简单方法<br />
实际上，主题的设置不一定非要用css文件，只要一个skin文件就可以了。具体方法是先从网页上设置控件的字体、颜色等属性，达到你要的效果后，进入源模式，把这个控件的代码直接复制到skin文件中，然后删除掉ID=”xx”这个属性就可以了，大家不妨试一下。</p>
<p>既然这种方法这么简单，为什么还要使用css呢？这是因为，skin中的样式，只能应用于服务器端控件，就是由runat=”server”的那些控件。对于Html控件，skin文件是不起作用的，这时就需要用到css。单独做成css，应用到Html控件时就不用再写一次了。</p>
<h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li><a href="http://chisdy.com/248.chisdy" title="CSS3开发工具收集">CSS3开发工具收集</a></li><li><a href="http://chisdy.com/155.chisdy" title="原来学东西真的需要复习之css的position">原来学东西真的需要复习之css的position</a></li><li><a href="http://chisdy.com/80.chisdy" title="重温css表单设计">重温css表单设计</a></li><li><a href="http://chisdy.com/16.chisdy" title="分享3个站点">分享3个站点</a></li><li><a href="http://chisdy.com/75.chisdy" title="IE浏览器各版本的CSS条件判断">IE浏览器各版本的CSS条件判断</a></li><li><a href="http://chisdy.com/74.chisdy" title="5种方法立刻写出更好的CSS代码">5种方法立刻写出更好的CSS代码</a></li><li><a href="http://chisdy.com/3.chisdy" title="基于jquery的一个横向导航菜单">基于jquery的一个横向导航菜单</a></li><li><a href="http://chisdy.com/65.chisdy" title="CSS兼容方案的一些简便技巧">CSS兼容方案的一些简便技巧</a></li><li><a href="http://chisdy.com/58.chisdy" title="IE多版本共存–Multiple IE">IE多版本共存–Multiple IE</a></li><li><a href="http://chisdy.com/42.chisdy" title="CSS跨浏览器滑动菜单">CSS跨浏览器滑动菜单</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://chisdy.com/64.chisdy/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

