首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 控件樣式開發詳解:Style 類、應用方式與自定義樣式屬性

     編輯:關於ASP.NET

承接上一篇關於屬性的討論,本文將深入探討 ASP.NET Web 控件的樣式系統。位於 System.Web.UI.WebControls 命名空間的 Style 類是所有樣式類的基類,絕大多數標準控件都擁有豐富的樣式相關屬性。

四種設定控件樣式的方式

  1. 直接設定控件屬性
    Button1.BackColor = System.Drawing.Color.Red;
  2. 透過 ControlStyle 集合設定
    Button1.ControlStyle.BackColor = System.Drawing.Color.Red;
  3. 使用 Style 物件搭配 ApplyStyle 方法
    Style myStyle = new Style();
    myStyle.BackColor = System.Drawing.Color.Red;
    Button1.ApplyStyle(myStyle);
    這種方式具有通用性,可定義一次樣式並套用至多個控件。
  4. 內嵌 CSS 樣式字串
    style="background-color: red"
    此方式等同於定義 HTML 樣式,不使用控件屬性系統。

WebControl.BackColor 與 Style.BackColor 的區別

前兩種方式實際上操作的是 WebControl 定義的樣式屬性(如 WebControl.BackColor),而第 3 種方式使用的是 Style 類的屬性(Style.BackColor)。Style 類提供了更完整的樣式定義(包含字型、邊框、間距等),並支援透過 ApplyStyle 合併非空樣性值,極大提升了樣式複用與維護的便利性。

自定義樣式屬性

當內建樣式屬性無法滿足業務需求時,可透過繼承 Style 類或在控件中定義 Style 型別的屬性來擴充。例如:

[Category("Appearance")]
[PersistenceMode(PersistenceMode.InnerProperty)]
public Style HeaderStyle
{
    get
    {
        if (_headerStyle == null) _headerStyle = new Style();
        return _headerStyle;
    }
}
private Style _headerStyle;

配合 PersistenceMode.InnerProperty,即可在標記中以巢狀方式設定:

<cc:MyControl runat="server">
  <HeaderStyle BackColor="Blue" ForeColor="White" />
</cc:MyControl>

掌握樣式系統的運作原理,能讓你開發出外觀一致、易於主題化與維護的專業級控件。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved