ASP.NET 主題(Themes)FAQ

來源:互聯網
上載者:User
1、主題是什麼   主題由一組元素組成:外觀、階層式樣式表 (CSS)、映像和其他資源。主題將至少包含外觀。主題是在網站或 Web 服務器上的特殊目錄中定義的。主題是一組Web Control的屬性設定的集合,提供一種簡單的方法設定控制項的樣式屬性。

·         主題只在Web Control中有效

·         母板頁(Master Page)上不能設定主題,但是主題可以在內容頁面上設定

·         主題上設定的Web Control的樣式覆蓋頁面上設定的樣式

·         如果在頁面上設定EnableTheming="false",主題無效

·         要在頁面中動態設定主題,必須在頁面生命週期Page_Preinit事件之前

·         主題包括.skin和.css檔案

2、.skin是什麼檔案.skin是面板檔案,它包含各個控制項(例如,Button、Label、TextBox 或 Calendar 控制項)的屬性設定。控制面板設定類似於控制項標記本身,但只包含您要作為主題的一部分來設定的屬性。例如,下面是 Button 控制項的控制面板:

<asp:button runat="server" BackColor="lightblue" ForeColor="black" />

在 theme 檔案夾中建立 .skin 檔案。一個 .skin 檔案可以包含一個或多個控制項類型的一個或多個控制面板。可以為每個控制項在單獨的檔案中定義外觀,也可以在一個檔案中定義所有主題的外觀。有兩種類型的控制面板 -“預設面板”和“具名面板”:

·         當向頁應用主題時,預設面板自動應用於同一類型的所有控制項。如果控制面板沒有 SkinID 屬性,則是預設面板。例如,如果為 Calendar 控制項建立一個預設面板,則該控制面板適用於使用本主題的頁面上的所有 Calendar 控制項。(預設面板嚴格按控制項類型來匹配,因此 Button 控制面板適用於所有 Button 控制項,但不適用於 LinkButton 控制項或從 Button 對象派生的控制項。)

·         具名面板是設定了 SkinID 屬性的控制面板。具名面板不會自動按類型應用於控制項。而應當通過設定控制項的 SkinID 屬性將具名面板顯式應用於控制項。通過建立具名面板,可以為應用程式中同一控制項的不同執行個體設定不同的外觀。

3、如何為相同控制項定義不同的Skin    使用SkinID為控制項定義不同的skin,例如

<asp:Label runat=server Text="ThemedLabel" BackColor="Red" /> -label的預設外觀          <asp:Label runat=server SkinId="BoldLabel" Text="ThemedLabel_WithSkinId" BackColor="Blue" Font-Bold="true" /> - 命名為BoldLabel 的Label外觀

   因此頁面沒有指定SkinId的label自動應用預設外觀,Label的SkinID設定為BoldLabel的Label控制項應用BoldLabel外觀

4、如何組織主題檔案內容   Theme檔案下可以包含多個.Skin檔案,所以可以多種方式組織你的主題檔案,所有的主題檔案在應用於頁面之前會合并。

·         一個.skin檔案包含所有的控制項的外觀定義

·         每個控制項一個.skin檔案

·         相同SkinID的控制項放在一個.skin檔案中

5、有沒有辦法定義好的Theme檔案在多個程式中共用伺服器上的任何網站以及任何網站中的任何頁面都可以引用全域主題,使用全域的主題可以在各個應用程式之間共用,例如你想建立一個全域共用的主題theme1。IIS 伺服器上的全域主題置放位置類似於 \Inetpub\wwwroot\aspnet_client\system_web\v2.0.xxxxx\Themes\Theme1

應用程式層級的主題會覆蓋全域的主題,例如你在應用程式中也定義了Theme1的主題,那麼在應用程式級的Theme1主題將覆蓋全域的主題Theme1

 

6、StyleSheetTheme是什麼   主題還可以包含階層式樣式表(.css 檔案)。將 .css 檔案放在主題目錄中時,樣式表自動作為主題的一部分應用。使用副檔名 .css 在主題檔案夾中定義樣式表。設定頁面的 StyleSheetTheme 屬性將主題作為樣式表主題來應用。如果您希望能夠設定頁面上的各個控制項的屬性,同時仍然對整體外觀應用主題,則可以將主題作為樣式表主題來應用。EnableTheming="false"情況下StyleSheetTheme仍然有效。通過重寫屬性StyleSheetTheme來動態修改頁面上的主題樣式

 public override string StyleSheetTheme
 {
    get{ retrun "MyStyleSheetTheme"; }
 }

7、主題(Theme/Skin)資源一組相當不錯的Theme,可以直接應用的項目開發中

    Theme預覽:
    Theme下載:http://www.dotnettreats.com/tools/Default.aspxhttp://www.dotnettreats.com/SampleThemes/Default.aspx原連結地址:http://shanyou.blog.51cto.com/363653/74943

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.