主题和皮肤

ASP.NET 2.0中的主题功能:

它类似于CSS,可以给应用程序的页面应用样式、图形甚至CSS文件。

 
ASP.NET 页面应用主题的方法:

 
1.给Page指令添加Theme属性.
如:

<%@ Page Language="C#" Theme="SmokeAndGlass" %>
此方法只能为单一的ASP.NET 页面添加主题,其中SmokeAndGlass是已经定义好的主题文件名称。

 
2.通过Web.config指定主题。
如:


<?xml version="1.0" encoding="UTF-8" ?>

<configuration>
<sytem.web>
<pages theme="SmokeAndGlass" />
</system.web>
</configuration>


此方法可以把主题应用到应用程序的每一个页面。
应用主题的页面中的控件如果再设置样式的话,将被主题覆盖。

如:
<asp:Textbox ID="TextBox1" Runat="server" BackColor="#000000" ForeColor="#ffffff" />

如果给Textbox1所在的页面应用了主题,就看不到文本框的黑背景色和白色的文本了,因为这些修改会被主题覆盖。
那么如何让这些修改起作用呢?
可以利用控件的EnableTheming属性,设为false就可以了。
如:

<asp:Textbox ID="TextBox1" Runat="server" BackColor="#000000" ForeColor="#ffffff" EnableTheming="false" />

这样的话主题文件将在Textbox1上不起作用。


如果要禁用多个控件的主题,则可以把这些控件先放在一个容器里(比如:Panel等),然后把Panel的EnableTheming属性设置为False就可以了。

 
如果在Web.config文件中设置了主题,如何使单个ASP.NET页面不应用主题特性?
可以设置页面的EnableTheming属性,


<%@ Page Language="C#" EnableTheming="false" %>
即使把页面的EnableTheming属性设为False,从而禁用了页面的主题,仍可以把该页面上的某个控件的EnableTheming属性设为True,给它应用主题,

如下:
<asp:Textbox ID="TextBox1" Runat="server" BackColor="#000000" ForeColor="#ffffff" EnableTheming="true" Theme="Summer" />


StyleSheetTheme属性


它同Theme属性一样都是把主题应用到页面,不同的是,用StyleSheetTheme设置时,不会出现修改控件样式失效的情况,如下:
<%@ Page Language="C#" StyleSheetTheme="Summer" %>

这样的话,再去修改控件的样式,修改的样式将不会被主题覆盖。
<asp:Textbox ID="TextBox1" Runat="server" BackColor="#000000" ForeColor="#ffffff" />

如果有Page指令中用Theme属性,则修改失效。

 
皮肤一般包含在主题中,并且皮肤只能定义与服务器控件相关的样式(别的控件可以用CSS来控制)。

定义皮肤时,不能包手控件的ID属性。
在同一个皮肤文件中,可以设置同一控件的不同的皮肤,其中没有SkinID属性的皮肤将作为默认的皮肤。

转载于:https://www.cnblogs.com/dongshuhua/archive/2010/07/14/1777404.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值