命名皮膚可以在主題的皮膚文件中用多種方式來組織
由於主題可以包含多個皮膚文件
你可能會把命名皮膚分割到單個文件中
使每個皮膚文件包含相同SkinID的多個控件定義
例如
在一個主題中
你可能擁有三個皮膚文件
它們分別與特定的SkinID值對應
/WebSite
/App_Themes
/MyTheme
Defaultskin
Redskin
Blueskin
你也可以根據控件類型對皮膚文件進行分組使每個皮膚文件包含特定控件的一組皮膚定義
/WebSite
/App_Themes
/MyTheme
GridViewskin
Calendarskin
Labelskin
你甚至於可以根據站點的不同區域來分割皮膚文件例如
/WebSite
/App_Themes
/MyTheme
HomePageskin
DataReportsskin
Forumsskin
在一個主題目錄下存放多個皮膚文件的能力使你能夠靈活地組織它們它還使你能夠輕易地與他人共享皮膚定義或者把皮膚定義從一個主題復制到另一個主題而不需要編輯主題中的皮膚文件
使用主題的服務器端樣式
主題是在應用程序建立之後甚至於在站點寄宿在生產服務器之後才應用到程序上的給程序應用主題的人可能是該應用程序的開發人員例如讓應用程序的開發人員和網站設計人員一起處理站點的外觀是很常見的在主題應用到程序上之後主題定義中的樣式屬性會重載應用程序頁面中的目標控件的屬性值
另一方面開發者獨立地構建樣式信息也很常見例如在獨立的文件中使用級聯樣式表(CSS)來定義控件和標記樣式在這種情況下你也可以使用主題把主題當作是一種服務器端的樣式表通過這種方式應用樣式表的時候主題定義中的樣式屬性會設置應用程序中的控件的默認值但是可以通過其它操作來重新設置頁面中的控件的這些值從而重載了主題定義
宣告式的服務器端樣式
當我們通過在@Page指令或配置文件的<pages/>段中設置Theme屬性來應用主題的時候主題中的皮膚的屬性將會重載頁面中目標控件的相同屬性下面的例子演示了頁面中的一個標簽控件它的ForeColor被設置為藍色在應用的主題中標簽皮膚把ForeColor屬性設置為橙色當你運行頁面的時候請注意主題定義重載了本地控件屬性所有的標簽都顯示為橙色
<%@ Page Language=VB Theme=OrangeTheme %>
<asp:Label ID=Label runat=server Text=Hello /><br />
<asp:Label ID=Label runat=server Text=Hello ForeColor=blue />
[] [] [] [] [] [] [] [] []
From:http://tw.wingwit.com/Article/program/net/201311/15069.html