(一)定义skin,在项目中新建asp.net文件夹,里面有一项是主题文件夹Theme,建立好后,里面又可以增加skin皮肤文件,在里面增加SkinFile文件,会默认增加SkinFile文件夹,在skinFile文件中可以这样定义:
方法1:<asp:Label ForeColor="red" runat="server"/>
方法2:也可以在项目里再新定义一个css文件例如style.css,在style.css中可以定义如下:
.AlternatingRowStyle
{
background-color:Red;
}
然后在SkinFile文件中定义如下:
<asp:GridView runat="server">
<AlternatingRowStyle CssClass = "AlternatingRowStyle" />
</asp:GridView>
两种方法效果相同,但是使用时有区别,第一种方法使用时如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Theme = "SkinFile"%>
第二种方法使用时如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Theme = "SkinFile"%>
<head runat="server">
<title></title>
<link href="StyleSheet.css" rel="stylesheet" type="text/css"/>//需要添加这一行来使用css文件
</head>
(二)在相同的skin文件中使用不同的Skin,需要区别SkinID
定义如下:
<asp:Label ForeColor="red" runat="server"/>//未定义skinID的skin是在默认情况下所使用的skin
<asp:Label SkinId = "blue" ForeColor="blue" runat="server"/>
使用方法如下:
<asp:Label ID="Label1" runat="server" Text="Label">//默认的使用
<asp:Label ID="Label2" runat="server" Text="Label" SkinID="blue">//指明skinID的使用
使用:可以在页面中建立两个HyperLink,并在URL里带入skin如:~/Default.aspx?Label,在页面后置文件中加入方法 protected void Page_PreInit()//因为theme需要在页面初始化前将其设置好,所以使用Page_PreInit()
{
Page.Theme = Server.HtmlEncode(Request.QueryString.ToString());
}
注意:(1)当使用<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Theme = "SkinFile"%>,如果在程序中页面属性来定义如下:
<asp:Label ID="Label2" runat="server" Text="Label" ForeColor="blue">此时页面只会显示默认的skin来设置Label,因为使用Theme = " “,不能再在页面定义属性,只能通过skin文件中定义好的skin来修改,如果想在程序中偶而定义几个比较特殊的页面属性,应使用<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" StyleSheetTheme= "SkinFile"%>,此时我们即可以使用skin文件中定义好的skin,也可以直接在页面中修改控件的页面属性
(2)skin文件夹里未必都是skin文件,也可以使用css文件在其文件夹中,使用效果是一样的