怎麼設置頁面的主題呢?也就是對頁面中的控件顯示樣式進行設置。vs中怎麼自定義主題呢?
設定主題:
右擊網站,選擇添加ASP.NET文件夾,選擇主題。系統默認將文件夾命名爲App_Themes,我們在這個文件夾下添加外觀文件,在.skin後綴的文件中自定義我們想要的主題。
例如:
<%-- 2.默認外觀。未定義SkinId。在同一主題中每個控件類型只允許有一個默認的控件外觀。--%>
<asp:Imagerunat="server"ImageUrl="~/images/image1.jpg"/>
<asp:Buttonrunat="server"BackColor="lightblue"FontColor="black"/>
<%--爲Lable控件定義三種外觀--%>
<asp:Labelrunat="server"foreColor="#FF0000"Font-Size="X-Small" />
<asp:Labelrunat="server"foreColor="#00FF00"Font-Size="X-Small" SkinId="LableGreen"/>
<asp:Labelrunat="server"foreColor="#0000FF"Font-Size="X-Small" SkinId="LableBlue"/>
利用SkinId屬性,爲同種類型的控件定義多種不同的外觀。
使用主題:
對單個網頁設定主題代碼:
<%@Page StylesheetTheme="Red"%>
<%@Page Theme="Red" %>
二者是有區別的,我們對某個類型的控件設定外觀的時候,可能這個控件本身的屬性已經設定。那我們在外觀對控件設定的外觀會不會覆蓋原來這個控件本身的屬性呢?例如控件字體顏色屬性爲紅色,我們在外觀文件改爲藍色,並使用主題,那字體顏色結果是紅色還是藍色呢?這就說到了StylesheetTheme和Theme的區別,Theme會覆蓋本地屬性的。
對網站應用主題代碼:
唯一不同的是,在配置文件中進行修改:
<configuration>
<system.web>
<pages theme="ThemeName"/>
</system.web>
</configuration>
如果我們同時設定了整個網站的主題,也同時設置了單個頁面的主題,則頁面主題優先。
禁用主題:
<% @PageEnableTheming="false">
DEMO:
三個主題頁面代碼:
Red主題頁
<%--爲三種類型控件外觀--%>
<asp:Labelrunat="server" foreColor="#FF0000" />
<asp:TextBoxrunat="server" foreColor="#FF0000"/>
<asp:Buttonrunat="server" foreColor="#FF0000" />
Green主題頁
<%--爲三種類型控件外觀--%>
<asp:Labelrunat="server" foreColor="Green" />
<asp:TextBoxrunat="server" foreColor="Green"/>
<asp:Buttonrunat="server" foreColor="Green" />
頁面Themes.aspx.cs代碼:
public partial class Theme : System.Web.UI.Page
{
//在頁開始初始化時發生。
protected void Page_PreInit(object sender, EventArgs e)
{
//當選擇下拉列表框中的Blue或Green Red時設置頁面的主題。
if (Request["ddlThemes"] != "0")
{
//字符串形式傳遞頁面主題的字符串。
Page.Theme = Request["ddlThemes"];
}
}
}
顯示:
主題就像是女孩子漂亮的衣服,而且是一身一身的,不同的女孩子喜歡不同的款式。幾乎每個軟件都有自己可更換的“衣服”,我們的電腦桌面有主題,office大多數軟件有主題設置,我們使用的瀏覽器有主題等等。主題爲各種不同的用戶在視覺感觀上考慮的更加周到。