ASP.NET定义主题和外观

转载 2007年10月16日 08:58:00
定义
  主题由一组元素组成:外观、级联样式表 (CSS)、图像和其他资源。主题将至少包含外观。主题是在网站或 Web 服务器上的特殊目录中定义的。
  外观
  外观文件具有文件扩展名 .skin,它包含各个控件的属性设置。控件外观设置类似于控件标记本身,但只包含您要作为主题的一部分来设置的属性。
  有两种类型的控件外观 -“默认外观”和“已命名外观”:
  当向页应用主题时,默认外观自动应用于同一类型的所有控件。如果控件外观没有 SkinID 属性,则是默认外观。已命名外观是设置了 SkindID属性的控件外观。
  级联样式表
  主题还可以包含级联样式表(。css 文件)。将 .css 文件放在主题文件夹中时,样式表自动作为主题的一部分加以应用。使用文件扩展名 .css 在主题文件夹中定义样式表。
  主题图形和其他资源
  主题还可以包含图形和其他资源,例如脚本文件或声音文件。
  例子
  1、 首先选择网站项目名称→右键单击→添加新项
  2.系统会建立一个app_themes文件夹,并在里面建立一个皮肤文件夹sampleTheme,并在里面建立一个皮肤文件sampleTheme.skin.
  3.在皮肤文件夹sampleTheme中添加一个Label.skin文件和Calendar.skin文件。
  4.文件内容如下:
  Label.skin
<asp:label runat="server" 
    font-bold="true" 
    forecolor="orange" />
    
<asp:label runat="server" SkinID="Blue" 
    font-bold="true" 
    forecolor="blue" />
 
  Calendar.skin:
<asp:Calendar runat="server" 
    BackColor
="#FFFFCC" 
    BorderColor
="#FFCC66" 
    BorderWidth
="1px" 
    DayNameFormat
="FirstLetter" 
    Font-Names
="Verdana" 
    Font-Size
="8pt" 
    ForeColor
="#663399" 
    Height
="200px" 
    ShowGridLines
="True" 
    Width
="220px">
    
    
<SelectedDayStyle BackColor="#CCCCFF" Font-Bold="True" />
    
<SelectorStyle BackColor="#FFCC66" />
    
<OtherMonthDayStyle ForeColor="#CC9966" />
    
<TodayDayStyle BackColor="#FFCC66" ForeColor="White" />
    
<NextPrevStyle Font-Size="9pt" ForeColor="#FFFFCC" />
    
<DayHeaderStyle BackColor="#FFCC66" Font-Bold="True" Height="1px" />
    
<TitleStyle BackColor="#990000" Font-Bold="True" Font-Size="9pt" ForeColor="#FFFFCC" />
</asp:Calendar>

<asp:Calendar SkinID="Simple" runat="server" 
    BackColor
="White" 
    BorderColor
="#999999" 
    CellPadding
="4" 
    DayNameFormat
="FirstLetter" 
    Font-Names
="Verdana" 
    Font-Size
="8pt" 
    ForeColor
="Black" 
    Height
="180px" 
    Width
="200px">
    
    
<SelectedDayStyle BackColor="#666666" Font-Bold="True" ForeColor="White" />
    
<SelectorStyle BackColor="#CCCCCC" />
    
<WeekendDayStyle BackColor="#FFFFCC" />
    
<OtherMonthDayStyle ForeColor="#808080" />
    
<TodayDayStyle BackColor="#CCCCCC" ForeColor="Black" />
    
<NextPrevStyle VerticalAlign="Bottom" />
    
<DayHeaderStyle BackColor="#CCCCCC" Font-Bold="True" Font-Size="7pt" />
    
<TitleStyle BackColor="#999999" BorderColor="Black" Font-Bold="True" />
</asp:Calendar>
 
  在“源”视图中,向 @ Page 指令添加下面的属性:
<%...@ Page Theme="sampleTheme" ... %> 
 
  在页面中添加2个caleder和2个lable控件
       
 <asp:Calendar ID="Calendar1" runat="server"></asp:Calendar>

        
<asp:Calendar ID="Calendar2" runat="server" SkinID="Simple"></asp:Calendar>

        
<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>

        
<asp:Label ID="Label1" runat="server" Text="Label" SkinID="Blue"></asp:Label>
 
  运行程序
  注意:
  1、如果主题是通过设置 @Page 指令或配置的 <pages/> 节的 Theme 属性 (attribute) 应用的,则主题中的外观属性 (property) 将重写页中目标控件的同名属性 (property)。
  2、通过将 @Page 指令或配置的 <pages/> 节的 StyleSheetTheme 属性设置为主题的名称,可以将主题定义作为服务器端样式来应用。主题属性用作 StyleSheetTheme 时,可能被页中的控件重写。
  3、 StyleSheetTheme 应在应用程序开发过程中应用,它作为从页中提取样式信息的手段,使应用程序的行为可独立于应用程序的外观进行维护。对应用程序应用 StyleSheetTheme 后,您可能还希望应用 Theme.如果对应用程序既应用 Theme 又应用 StyleSheetTheme,则按以下顺序应用控件的属性:
  首先应用 StyleSheetTheme 属性
  应用页中的控件属性(重写 StyleSheetTheme)
  最后应用 Theme 属性(重写控件属性和 StyleSheetTheme)
  4、在皮肤文件里面可以针对同一个控件设置多个皮肤风格,使用skinid来区分不同风格,并在aspx页面文件的控件中使用skinid来引用不同皮肤风格。
  5.以编程方式应用页面主题
  在页面的 PreInit方法的处理程序中,设置页面的 Theme属性。
  下面的代码示例演示如何根据查询字符串中传递的值按条件设置页面主题。
  为应用程序指定和禁用主题
Protected void Page_PreInit(object sender, EventArgs e)

...{

    
switch (Request.QueryString["theme"])

    
...{

        
case "Blue":

            
<b>Page.Theme = "BlueTheme";</b>

            
break;

        
case "Pink":

            
<b>Page.Theme = "PinkTheme";</b>

            
break;

    }


}


  6.
  将 @ Page 指令的 EnableTheming 属性设置为 false,
 <%...@ Page EnableTheming="false" %>
 
  7.对网站应用主题
  每个应用程序中都包括多个页面,并且为了保证和谐统一的用户界面,我们可以让所有页面使用同一主题。如果为在每个页头都设置相同的Theme属性值,那么非常麻烦。为了快速地为整个应用程序的所有页面设置相同的主题,可以设置Web.Config文件的<pages>配置节内容。
   
<configuration> <system.web> <pages theme="sampleTheme" /> </system.web> </configuration>
  

学习笔记--asp.net主题和外观(转自msdn,仅为自己学习存储和有意读者使用)

ASP.NET 主题和外观 .NET Framework 4 其他版本 1(共 1)对本文的评价是有帮助 - 评价此主题 ...
  • ztzi321
  • ztzi321
  • 2014-04-14 09:56:13
  • 1286

asp.net主题文件(css+.skin)的使用

一、简介:     关于主题文件的创建,请参看本博客http://blog.sina.com.cn/s/blog_67aaf4440100nl5k.html   利用Themes我们可以很容易的更...
  • woshixuye
  • woshixuye
  • 2012-02-01 08:09:35
  • 3504

asp.net—四种控件集

一、内部控件:     内部控件可进行文本输入、多行输入、密码输入,分为html控件和内部控件。          1、控制转移:button 、imageButton、Hyperlink和LinkB...
  • u013044029
  • u013044029
  • 2015-08-07 15:43:18
  • 568

ASP.NET定义主题和外观

定义  主题由一组元素组成:外观、级联样式表 (CSS)、图像和其他资源。主题将至少包含外观。主题是在网站或 Web 服务器上的特殊目录中定义的。  外观  外观文件具有文件扩展名 .skin,它包含...
  • andylaufzf
  • andylaufzf
  • 2007-10-16 08:58:00
  • 385

ASP.NET定义主题和外观

  • 2008年03月24日 11:34
  • 2KB
  • 下载

ASP.NET 主题

1、主题是什么   主题由一组元素组成:外观、级联样式表 (CSS)、图像和其他资源。主题将至少包含外观。主题是在网站或 Web 服务器上的特殊目录中定义的。主题是一组Web Control的属性设置...
  • fengziling
  • fengziling
  • 2006-12-15 18:40:00
  • 704

ASP.NET判断控件类型

DEMO1: public void ChangeRepeaterStatus(string rpID) { for (int i = 0; i < th...
  • fox123871
  • fox123871
  • 2012-09-13 16:28:53
  • 2392

ASP.NET2.0自定义控件开发(1)----呈现控件的外观

        asp.net本身提供了很多控件,可以给我们这些懒人使用,但是我们"身在福中不知福",还要更懒一点.那么,我们要更懒的话,就得要开发一些自定义控件了.举个真实例子说吧,你在WebFor...
  • knownchen
  • knownchen
  • 2007-02-27 14:41:00
  • 472

ASP.NET 实现主题切换实例

通常我们经常看到网页,一些软件提供换肤功能,各种主题间切换。ASP.NET 2.0 中可以用Theme和skin以及CSS轻松实现这个功能。    首先简单介绍一下三种技术:主题(Theme)技...
  • yinjingjing198808
  • yinjingjing198808
  • 2012-06-08 08:03:52
  • 6556

如何:使用 ASP.NET Login 控件的高级功能

您可以自定义 Login 控件的用户界面 (UI) 文本和外观(字体和颜色)。或者,可以通过应用 ASP.NET 主题或外观来更改 Login 控件的总体外观。 此外,您还可以利用 Login 控件的...
  • grace200488
  • grace200488
  • 2007-05-10 14:14:00
  • 1382
收藏助手
不良信息举报
您举报文章:ASP.NET定义主题和外观
举报原因:
原因补充:

(最多只允许输入30个字)