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