日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

ASP.NET 2.0(C#) - Themes(主题)

發布時間:2024/4/14 C# 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET 2.0(C#) - Themes(主题) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原文鏈接:http://www.netfocus.cn/article1648.html

作者:webabcd


介紹
使用 ASP.NET 2.0 的“主題”功能,可以將樣式和布局信息分解為單獨的文件組,統稱為“主題”。然后,主題可應用于任何站點,影響站點中頁和控件的外觀。這樣,通過更改主題即可輕松地維護對站點的樣式更改,而無需對站點各頁進行編輯。還可與其他開發人員共享主題。


關鍵
1、在web site中添加App_Themes文件夾,可以在每個主題文件加內添加.skin文件、.css文件(指定主題后會自動加載主題下所有.css文件)或者圖片文件

2、在web.config的<system.web>元素下的<pages>元素下設置theme或者styleSheetTheme屬性(針對全局);在頁的@Page指令里設置Theme或者StylesheetTheme屬性(針對當前頁)

3、Theme定義的樣式不可以覆蓋;StylesheetTheme定義的樣式可以覆蓋

4、.skin文件里不設置SkinId則就是默認的,設置了SkinId后則對應控件的SkinId屬性

5、動態修改Page的Theme要在Page_PreInit方法中實現


示例
Blue主題
<asp:Label?runat="server"?BackColor="blue"?ForeColor="white"?/>
<asp:Label?runat="server"?BackColor="DarkBlue"?ForeColor="white"?SkinId="Dark"?/>

<%--ImageUrl如下設置則解析到該主題下的Images文件夾的pic.jpg文件--%>
<asp:Image?runat="server"?ImageUrl="Images/pic.jpg"?/>
Red主題
<asp:Label?runat="server"?BackColor="red"?ForeColor="white"?/>
<asp:Label?runat="server"?BackColor="DarkRed"?ForeColor="white"?SkinId="Dark"?/>

<%--ImageUrl如下設置則解析到該主題下的Images文件夾的pic.jpg文件--%>
<asp:Image?runat="server"?ImageUrl="Images/pic.jpg"?/>
主題測試-Theme
Themes/Theme.aspx
<%@?Page?Language="C#"?MasterPageFile="~/Site.master"?AutoEventWireup="true"?CodeFile="Theme.aspx.cs"
????Inherits
="Themes_Theme"?Title="主題測試-Theme"?Theme="Blue"?
%>

<asp:Content?ID="Content1"?ContentPlaceHolderID="ContentPlaceHolder1"?runat="Server">
????
<p>
????????在頁頭部分指定Theme="Blue"
</p>
????
<p>
????????相關主題文件,我覺得最好把樣式寫在css里然后設置控件的CssClass屬性
????????
<br?/>
????????
&lt;asp:Label?ID="Label1"?runat="server"?BackColor="blue"?ForeColor="white"?/&gt;
????????
<br?/>
????????
&lt;asp:Label?ID="Label2"?runat="server"?BackColor="DarkBlue"?ForeColor="white"
????????SkinId="Dark"?/
&gt;
????
</p>
????
<p>
????????
<asp:Label?ID="lbl"?runat="Server"?Text="不做任何設置(使用主題中的沒設置SkinId的樣式)"?/>
????
</p>
????
<p>
????????
<asp:Label?ID="lbl2"?runat="Server"?Text="設置BackColor為black(因為設置的是頁的Theme屬性,所以無法覆蓋原有樣式)"?BackColor="black"?/>
????
</p>
????
<p>
????????
<asp:Label?ID="lbl3"?runat="Server"?Text="主題測試設置SkinID為dark(指定SkinId)"?SkinID="dark"?/>
????
</p>
</asp:Content>

主題測試-StylesheetTheme
Themes/StylesheetTheme.aspx
<%@?Page?Language="C#"?MasterPageFile="~/Site.master"?AutoEventWireup="true"?CodeFile="StylesheetTheme.aspx.cs"
????Inherits
="Themes_StylesheetTheme"?Title="主題測試-StylesheetTheme"?StylesheetTheme="Red"?
%>

<asp:Content?ID="Content1"?ContentPlaceHolderID="ContentPlaceHolder1"?runat="Server">
????
<p>
????????在頁頭部分指定StylesheetTheme="Red"
</p>
????
<p>
????????相關主題文件,我覺得最好把樣式寫在css里然后設置控件的CssClass屬性
????????
<br?/>
????????
&lt;asp:Label?ID="Label1"?runat="server"?BackColor="red"?ForeColor="white"?/&gt;
????????
<br?/>
????????
&lt;asp:Label?ID="Label2"?runat="server"?BackColor="DarkRed"?ForeColor="white"?SkinId="Dark"
????????/
&gt;
????
</p>
????
<p>
????????
<asp:Label?ID="lbl"?runat="Server"?Text="不做任何設置(使用主題中的沒設置SkinId的樣式)"?/>
????
</p>
????
<p>
????????
<asp:Label?ID="lbl2"?runat="Server"?Text="設置BackColor為black(因為設置的是頁的StylesheetTheme屬性,所以無法覆蓋原有樣式)"?BackColor="black"?/>
????
</p>
????
<p>
????????
<asp:Label?ID="lbl3"?runat="Server"?Text="主題測試設置SkinID為dark(指定SkinId)"?SkinID="dark"?/>
????
</p>
</asp:Content>

主題測試-動態加載主題
Themes/Dynamic.aspx
<%@?Page?Language="C#"?MasterPageFile="~/Site.master"?AutoEventWireup="true"?CodeFile="Dynamic.aspx.cs"
????Inherits
="Themes_Dynamic"?Title="主題測試-動態加載主題"?
%>

<asp:Content?ID="Content1"?ContentPlaceHolderID="ContentPlaceHolder1"?runat="Server">
????
<p>
????????相關.skin文件內容如下:
&lt;asp:Image?runat="server"?ImageUrl="Images/pic.jpg"?/&gt;
????
</p>
????
<p>
????????
<a?href="?theme=blue">藍色主題</a>?&nbsp;<a?href="?theme=red">紅色主題</a>
????
</p>
????
<p>
????????該Image控件應用主題中的樣式,包括ImageUrl
????????
<br?/>
????????
<asp:Image?ID="img"?runat="server"?/>
????
</p>
</asp:Content>

Themes/Dynamic.aspx.cs
using?System;
using?System.Data;
using?System.Configuration;
using?System.Collections;
using?System.Web;
using?System.Web.Security;
using?System.Web.UI;
using?System.Web.UI.WebControls;
using?System.Web.UI.WebControls.WebParts;
using?System.Web.UI.HtmlControls;

public?partial?class?Themes_Dynamic?:?System.Web.UI.Page
{
????
protected?void?Page_Load(object?sender,?EventArgs?e)
????
{

????}


????
protected?void?Page_PreInit(object?sender,?System.EventArgs?e)
????
{
????????
//?動態修改Page的Theme要在Page_PreInit方法中實現
????????if?(!String.IsNullOrEmpty(Request.QueryString["theme"]))
????????
{
????????????Page.Theme?
=?Request.QueryString["theme"];
????????}

????????
else
????????
{
????????????Page.Theme?
=?"blue";
????????}

????}

}



OK
[源碼下載]

轉載于:https://www.cnblogs.com/scgw/archive/2008/03/11/1100453.html

總結

以上是生活随笔為你收集整理的ASP.NET 2.0(C#) - Themes(主题)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。