asp.net中皮膚與樣式
怎樣寫一個主題的皮膚呢?:
就是類似於你在設計檢視下把一個控制元件的樣式設定好之後再把這個控制元件的原始碼考到皮膚檔案中,把不屬於皮膚的內容去了,如id就可以了
這個去了id之後,而不加SkinId這就是一個預設皮膚,也就是在引用頁面中如果不設定SkinID同一型別的控制元件都使用這個皮膚,如果設定SkinId
那麼就是不預設皮膚了,所以在引用的時候,一定要通過SkinID引用一下才可以,(注意在一個皮膚檔案中只允許有一個預設皮膚不然就會出
現錯誤)
在配置檔案裡新增Theme或者StyleSheetTheme屬性
<configuration>
<system.web>
<!—<pages theme=”Theme_XP”/>-->
<pages styleSheetTheme="Theme_XP"/> 所有的控制元件都使用這個樣式
</system.web>
</configuration>
在頁面的PreInit事件中可以動態載入主題,此時皮膚檔案和樣式表檔案會同時被載入,但在該事件中不能夠呼叫頁面的控制元件,因為在此事件中,頁面控制元件還未初始化。
<%@ Page
Language="C#"
Theme="DynamicTheme"
%>
……
<a
href="DynamicTheme.aspx?theme=XP">Theme_XP
</a>
<a href="DynamicTheme.aspx?theme=Win7">Theme_Win7 </a>
……
protected void Page_PreInit(object sender,
EventArgs e)
{
Theme = "Theme_XP";
if (Request["theme"] !=
null)
{
switch (Request["theme"])
{
case "XP":
Theme = "Theme_XP";
break;
case "Win7":
Theme = "Theme_Win7";
break;
}
}
}
3、通過改變控制元件的SkinID屬性值動態載入主題中的皮膚
除了在頁面的PreInit事件中動態載入主題外,還可以在PreInit事件中選擇載入主題中的皮膚,但皮膚只能是命名皮膚。
<%@ Page
Language="C#"
Theme="DynamicCSS"
%>
……
<a href="showdynamicskin.aspx?skin=professional">Professional</a>
<a href="showdynamicskin.aspx?skin=colorful">Colorful</a>
……
protected void Page_PreInit(object
sender, EventArgs e)
{
if (Request["skin"] !=
null)
{
switch (Request["skin"])
{
case "professional":
grdMovies.SkinID = "Professional";
break;
case "colorful":
grdMovies.SkinID = "Colorful";
break;
}
}
}
4、通過改變控制元件的CssClass屬性值動態載入主題中的樣式表
除了動態載入主題外,還可以選擇載入主題中的樣式表。
樣式表檔案:App_Themes\DynamicCSS\GridView.CSS
.Professional td
{
padding:4px;
color:#333333;
background-color:#F7F6F3;
}
.Professional .Header th
{
padding:4px;
background-color:#5D7B9D;
font-weight:bold;
color:White;
}
.Professional .Alternating td
{
background-color:White;
color:#284775;
}
.Colorful td
{
padding:4px;
color:#333333;
background-color:#FFFBD6;
}
.Colorful .Header th
{
padding:4px;
background-color:#990000;
font-weight:bold;
color:White;
}
.Colorful .Alternating td
{
background-color:White;
}
<%@ Page
Language="C#"
Theme="DynamicCSS"
%>
……
<asp:GridView
id="grdMovies"
Runat="server" DataSourceID="srcMovies"
GridLines="none"
HeaderStyle-CssClass="Header"
AlternatingRowStyle-CssClass="Alternating"/>
<asp:DropDownList
id="ddlCssClass"
Runat="server">
<asp:ListItem
Text="Professional" />
<asp:ListItem
Text="Colorful" />
</asp:DropDownList>
……
protected void
btnSubmit_Click(object sender,
EventArgs e)
{
grdMovies.CssClass = ddlCssClass.SelectedItem.Text;
}
二、禁用主題(皮膚、樣式表)
當載入主題到頁面後,因為某些原因需要禁用某個頁面的主題,或者說禁用某個控制元件的主題,此時我們可以採用設定Theme或者StyleSheetTheme為空來完成。而設定EnableTheming為False禁用的只是主題中的皮膚。
禁用主題:設定Theme或者StyleSheetTheme為空來完成,或者建立一個空的主題檔案,然後關聯它。
禁用主題中的皮膚:當以Theme方式載入主題時,我們可以設定控制元件或者頁面的EnableThemeing為False禁用主題中的皮膚。
三、Theme和StyleSheetTheme的異同
兩者都可用來載入指定的主題,當主題中不包含皮膚檔案時,兩者效果一樣,當主題中包含皮膚檔案時,兩者因優先順序不一樣會產生不一樣的效果,優先順序依次為:StyleSheetTheme->Page->Theme,後面的會重寫前面的相同部分。
皮膚檔案:App_Themes\Theme1\TextBox.skin
<%--TextBox預設皮膚--%>
<asp:TextBox
runat="server"
BackColor="Red"/>
<%--TextBox命名皮膚1--%>
<asp:TextBox
runat="server"
BackColor="Yellow"
SkinId="txtName"/>
<%--TextBox命名皮膚2--%>
<asp:TextBox
runat="server"
BackColor="Blue" SkinId="txtAge"/>
1、頁面以Theme方式載入主題
<%@ Page
Language="C#"
AutoEventWireup="true"
CodeFile="Default1.aspx.cs"
Inherits="Default1"
Theme="Theme1"%>
……
<form>
<div>
<asp:TextBox
ID="TextBox1"
runat="server" BackColor="Black"></asp:TextBox>
<asp:TextBox
ID="TextBox2 "
runat="server" SkinID="txtName"
BackColor="Black"></asp:TextBox>
<asp:TextBox
ID="TextBox3"
runat="server" SkinID="txtAge"></asp:TextBox>
</div>
</form>
相關文章
- 皮膚可配置化:變數、樣式分離變數
- 【Unity】(UI)抽屜式摺疊皮膚UnityUI
- windows安裝IIS不顯示ASP.net的功能皮膚WindowsASP.NET
- 如何使用Media Encoder中的「編碼」皮膚和「佇列」皮膚詳解佇列
- win10怎麼樣開啟控制皮膚 win10開啟控制皮膚操作方法Win10
- HyperWorks中的Size and bias 子皮膚
- Linux皮膚APPNODE與寶塔橫評LinuxAPP
- 小喬皮膚
- 部落格皮膚
- 寶塔皮膚
- win10系統怎樣開啟nvidia控制皮膚 win10開啟nvidia控制皮膚的步驟Win10
- Omdia:雙穩態膽固醇液晶皮膚開始與電泳顯示皮膚展開競爭
- 《部落衝突》春節限定皮膚揭曉 首款中國風皮膚木蘭登場
- IHS Markit:中國皮膚製造商開始主導大型液晶電視皮膚市場
- Omdia:中國皮膚製造商主導98和100英寸電視皮膚市場
- 寶塔皮膚修改網站首頁 如何在寶塔皮膚中修改網站首頁網站
- WebSphere Portal 7.0的主題與皮膚部署方法Web
- 摺疊皮膚元件的設計與實現元件
- wampserver服務皮膚Server
- jq切換皮膚
- 本部落格皮膚
- Omdia:預測2021年中國大陸皮膚廠將新增每月12萬片的8.5代皮膚產能專注於IT皮膚生產
- 部落格園皮膚-我的部落格園皮膚設定教程
- nvidia控制皮膚怎麼調 nvidia控制皮膚怎麼設定
- Avene雅漾:2022中國敏感性皮膚護膚百科
- 控制皮膚中的java無法正常顯示Java
- Chrome DevTools的Network皮膚Chromedev
- [萌]chrome效能分析皮膚Chrome
- python 爬取 mc 皮膚Python
- SimpleMemory部落格園皮膚
- 安裝寶塔皮膚
- 寶塔皮膚進不去—寶塔皮膚進不去,網站打不開網站
- win10控制皮膚在哪裡 控制皮膚快捷鍵的開啟方式Win10
- 2026 年起,內嵌式觸控型皮膚將佔汽車顯示皮膚市場出貨量的 50%以上
- Omdia: 2022年中國皮膚廠商工業用途和公用顯示皮膚出貨量份額達 69%
- Omdia:2026年起內嵌式觸控型皮膚將佔汽車顯示皮膚市場出貨量的 50%以上
- CINNO Research:2021年1月手機皮膚行情: LTPS皮膚價格續跌
- TrendForce:中國大陸皮膚廠挾產能優勢,2021年顯示器皮膚市佔率拼過半
- centos寶塔皮膚修復CentOS