ContainerControlDesigner 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供包含子控制項或可於設計時修改屬性的控制項設計功能。
public ref class ContainerControlDesigner : System::Web::UI::Design::ControlDesigner
public class ContainerControlDesigner : System.Web.UI.Design.ControlDesigner
type ContainerControlDesigner = class
inherit ControlDesigner
Public Class ContainerControlDesigner
Inherits ControlDesigner
- 繼承
- 衍生
範例
以下程式碼範例示範如何從 ContainerControlDesigner 該類別推導出設計類別。 範例定義了一個由 CompositeControl 類別衍生的簡單控制項,接著定義了由類別衍生 ContainerControlDesigner 出的相關設計器。 衍生設計類別會 FrameCaption 覆寫 和 FrameStyle 屬性,以自訂設計表面控制項可編輯區域周圍的框架。
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using System.Web.UI;
using System.Web.UI.Design;
using System.Web.UI.Design.WebControls;
using System.Web.UI.WebControls;
namespace ControlDesignerSamples.CS
{
// Define a simple composite control, derived from the
// System.Web.UI.WebControls.CompositeControl class.
[
Designer(typeof(SimpleContainerControlDesigner)) ,
ParseChildren(false)
]
public class SimpleContainerControl : CompositeControl
{
}
// Define the designer for the simple composite control.
// The designer derives from System.Web.UI.Design.ContainerControlDesigner.
// The designer defines the style and caption for frame around the
// editable region in the design surface.
public class SimpleContainerControlDesigner : ContainerControlDesigner
{
private Style _style = null;
// Define the caption text for the frame in the design surface.
public override string FrameCaption
{
get
{
return "= My simple container control =";
}
}
// Define the style of the frame around the control in the design surface.
public override Style FrameStyle
{
get
{
if (_style == null)
{
_style = new Style();
_style.Font.Name = "Verdana";
_style.Font.Size = new FontUnit("XSmall");
_style.BackColor = Color.LavenderBlush;
_style.ForeColor = Color.DarkBlue;
}
return _style;
}
}
}
}
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Collections
Imports System.Drawing
Imports System.Web.UI
Imports System.Web.UI.Design
Imports System.Web.UI.Design.WebControls
Imports System.Web.UI.WebControls
Namespace ControlDesignerSamples.VB
' Define a simple composite control, derived from the
' System.Web.UI.WebControls.CompositeControl class.
<Designer(GetType(SimpleContainerControlDesigner)), _
ParseChildren(False)> _
Public Class SimpleContainerControl
Inherits CompositeControl
End Class
' Define the designer for the simple composite control.
' The designer derives from System.Web.UI.Design.ContainerControlDesigner.
' The designer defines the style and caption for the frame around the
' editable region of the control in the design surface.
Public Class SimpleContainerControlDesigner
Inherits ContainerControlDesigner
Private _style As Style = Nothing
' Define the caption text for the frame in the design surface.
Public Overrides ReadOnly Property FrameCaption() As String
Get
Return "- My simple container control -"
End Get
End Property
' Define the style of the frame around the control in the design surface.
Public Overrides ReadOnly Property FrameStyle() As Style
Get
If _style Is Nothing Then
_style = New Style()
_style.Font.Name = "Verdana"
_style.Font.Size = New FontUnit("XSmall")
_style.BackColor = Color.LavenderBlush
_style.ForeColor = Color.DarkBlue
End If
Return _style
End Get
End Property
End Class
End Namespace
備註
該 ContainerControlDesigner 類別提供一個基礎設計類別,用於可在設計表面上修改的控制項。 這包括包含子控制項或可編輯內部屬性的控制項。 它 ContainerControlDesigner 提供一個單一的框架區域來表示控制項,並在設計時自動處理控制的渲染。
對相關控制項套用屬性 ParseChildrenAttribute ,以判斷 ContainerControlDesigner。 對相關控制項套用 ParseChildrenAttribute 以下設定:
false用以表示 代表 ContainerControlDesigner 可編輯設計區域的內容,作為子控制項。true表示 表示可 ContainerControlDesigner 編輯設計區域的內容,作為控制項的可編輯內部屬性。
控制開發者可根據所開發控制類型,從多個基礎設計器中推導並擴展自訂設計器,定義如下清單:
允許在設計時加入子控制項的控制項,可以從 ContainerControlDesigner 類別中衍生出來。 例如,類別 PanelContainerDesigner 由 ContainerControlDesigner 類別衍生,代表 Panel 設計曲面上的一個控制項。
擁有一個或多個子控制項,且可能有可編輯的設計區域,可在設計時新增控制項,這些控制項可從 CompositeControlDesigner 類別衍生。
需要自訂設計時處理的控制項可由基底 ControlDesigner 類別衍生而來。
Note
該 ContainerControlDesigner 職業取代了已 ReadWriteControlDesigner 過時的職業。
使用屬性 DesignerAttribute 將自訂設計師類別與自訂控制實作關聯起來。 欲了解如何使用帶有自訂控制項的控制設計器詳細資訊,請參閱 「攻略:建立網頁伺服器控制的基本控制設計器」。
建構函式
| 名稱 | Description |
|---|---|
| ContainerControlDesigner() |
初始化 ContainerControlDesigner 類別的新執行個體。 |
屬性
| 名稱 | Description |
|---|---|
| ActionLists |
取得控制設計器的動作清單集合。 (繼承來源 ControlDesigner) |
| AllowResize |
會有一個值,表示控制項在設計時是否可以調整大小。 |
| AssociatedComponents |
取得設計師管理的與該元件相關的元件集合。 (繼承來源 ComponentDesigner) |
| AutoFormats |
取得預設自動格式化方案集合,於設計時顯示於相關控制項的 自動格式 化對話框中。 (繼承來源 ControlDesigner) |
| Behavior |
已淘汰.
取得或設定與設計器相關的 DHTML 行為。 (繼承來源 HtmlControlDesigner) |
| Component |
取得設計師正在設計的元件。 (繼承來源 ComponentDesigner) |
| DataBindings |
取得目前控制項的資料綁定收集。 (繼承來源 HtmlControlDesigner) |
| DataBindingsEnabled |
取得一個值,表示相關控制項的包含區域是否支援資料綁定。 (繼承來源 ControlDesigner) |
| DesignerState |
取得一個物件,用於在設計時持久化相關控制項的資料。 (繼承來源 ControlDesigner) |
| DesignTimeElement |
已淘汰.
取得代表該物件在設計表面上所關聯 HtmlControlDesigner 控制項的設計時物件。 (繼承來源 HtmlControlDesigner) |
| DesignTimeElementView |
已淘汰.
取得控制設計器的視控物件。 (繼承來源 ControlDesigner) |
| DesignTimeHtmlRequiresLoadComplete |
已淘汰.
會取得一個值,表示設計主機是否必須完成載入才能呼叫該 GetDesignTimeHtml 方法。 (繼承來源 ControlDesigner) |
| Expressions |
在設計時取得目前控制項的表達式綁定。 (繼承來源 HtmlControlDesigner) |
| FrameCaption |
在設計時會顯示用於控制的說明。 |
| FrameStyle |
它會取得設計時套用到控制框架的樣式。 |
| HidePropertiesInTemplateMode |
會取得一個值,表示當控制項處於模板模式時,相關控制項的屬性是否被隱藏。 (繼承來源 ControlDesigner) |
| ID |
取得或設定控制項的 ID 字串。 (繼承來源 ControlDesigner) |
| InheritanceAttribute |
會獲得一個屬性,表示相關元件繼承的類型。 (繼承來源 ComponentDesigner) |
| Inherited |
會得到一個值,表示該元件是否為繼承。 (繼承來源 ComponentDesigner) |
| InTemplateMode |
會獲得一個值,表示控制項在設計主機中是處於範本檢視模式還是編輯模式。 該 InTemplateMode 屬性為唯讀。 (繼承來源 ControlDesigner) |
| IsDirty |
已淘汰.
取得或設定一個值,表示網頁伺服器控制項是否被標記為變更。 (繼承來源 ControlDesigner) |
| NoWrap |
會獲得一個值,指定是否要在資料表中使用 HTML |
| ParentComponent |
取得這個設計器的父元件。 (繼承來源 ComponentDesigner) |
| ReadOnly |
已淘汰.
取得或設定一個值,表示控制項屬性在設計時是否為唯讀。 (繼承來源 ControlDesigner) |
| RootDesigner |
取得包含相關控制項的網頁表單頁面的控制項設計器。 (繼承來源 ControlDesigner) |
| ShadowProperties |
會取得一組屬性值,覆蓋使用者設定。 (繼承來源 ComponentDesigner) |
| ShouldCodeSerialize |
已淘汰.
在序列化過程中,會取得或設定一個值,指示是否要在目前設計文件的程式碼背後檔案中為控制項建立欄位宣告。 (繼承來源 HtmlControlDesigner) |
| Tag |
取得一個代表相關控制項 HTML 標記元素的物件。 (繼承來源 ControlDesigner) |
| TemplateGroups |
獲得一組模板群組,每個群組包含一個或多個範本定義。 (繼承來源 ControlDesigner) |
| UsePreviewControl |
會取得一個值,指示控制項設計者是否使用暫存預覽控制來產生設計時的 HTML 標記。 (繼承來源 ControlDesigner) |
| Verbs |
取得與設計者相關元件所支援的設計時動詞。 (繼承來源 ComponentDesigner) |
| ViewControl |
取得或設定一個網頁伺服器控制項,可用於預覽設計時的 HTML 標記。 (繼承來源 ControlDesigner) |
| ViewControlCreated |
取得或設定一個值,指示是否 |
| Visible |
會獲得一個值,表示該控制點在設計時是否可見。 (繼承來源 ControlDesigner) |
方法
明確介面實作
| 名稱 | Description |
|---|---|
| IDesignerFilter.PostFilterAttributes(IDictionary) |
關於此成員的描述,請參見方法。PostFilterAttributes(IDictionary) (繼承來源 ComponentDesigner) |
| IDesignerFilter.PostFilterEvents(IDictionary) |
關於此成員的描述,請參見方法。PostFilterEvents(IDictionary) (繼承來源 ComponentDesigner) |
| IDesignerFilter.PostFilterProperties(IDictionary) |
關於此成員的描述,請參見方法。PostFilterProperties(IDictionary) (繼承來源 ComponentDesigner) |
| IDesignerFilter.PreFilterAttributes(IDictionary) |
關於此成員的描述,請參見方法。PreFilterAttributes(IDictionary) (繼承來源 ComponentDesigner) |
| IDesignerFilter.PreFilterEvents(IDictionary) |
關於此成員的描述,請參見方法。PreFilterEvents(IDictionary) (繼承來源 ComponentDesigner) |
| IDesignerFilter.PreFilterProperties(IDictionary) |
關於此成員的描述,請參見方法。PreFilterProperties(IDictionary) (繼承來源 ComponentDesigner) |
| ITreeDesigner.Children |
關於此成員的描述,請參見 Children 該物業。 (繼承來源 ComponentDesigner) |
| ITreeDesigner.Parent |
關於此成員的描述,請參見 Parent 該物業。 (繼承來源 ComponentDesigner) |