TemplateDefinition クラス
アセンブリ: System.Design (system.design.dll 内)


TemplateDefinition クラスは基本テンプレート定義クラスであり、このクラスを継承し、コントロール デザイナ用に拡張することで、Visual Studio 2005 などのデザイン ホストでテンプレート コントロールをサポートできるようになります。TemplateDefinition クラスのプロパティおよびメソッドを使用すると、デザイン時にデザイン ホストでテンプレートの作成と編集を簡単に行うことができます。

ControlDesigner クラスからカスタム クラスを派生する方法を次のコード例に示します。このコントロール デザイナは、4 つのテンプレートを持つコントロールをサポートします。
これを試すには、System.Design.dll アセンブリへの参照を追加し、コードをコンパイルしてから、Visual Studio 2005 などのデザイン ホストのデザイン ビューでページを開きます。コントロールを選択し、アクション リストをクリックして変更するテンプレートを選択します。次に、ドラッグ アンド ドロップ機能を使用してコントロールをテンプレート内に移動します。
Imports Microsoft.VisualBasic Imports System Imports System.ComponentModel Imports System.Web.UI Imports System.Web.UI.WebControls Imports System.Web.UI.Design Namespace ASPNet.Design.Samples ' Set an attribute reference to the designer, and define ' the HTML markup that the toolbox will write into the source. <Designer(GetType(TemplateGroupsSampleDesigner)), _ ToolboxData("<{0}:TemplateGroupsSample runat=server></{0}:TemplateGroupsSample>")> _ Public Class TemplateGroupsSample Inherits WebControl Implements INamingContainer ' Field for the templates Private _templates() As ITemplate ' Constructor Public Sub New() ReDim _templates(4) End Sub ' For each template property, set the designer attributes ' so the property does not appear in the property grid, but ' changes to the template are persisted in the control. <Browsable(False), _ PersistenceMode(PersistenceMode.InnerProperty)> _ Public Property Template1() As ITemplate Get Return _templates(0) End Get Set(ByVal Value As ITemplate) _templates(0) = Value End Set End Property <Browsable(False), _ PersistenceMode(PersistenceMode.InnerProperty)> _ Public Property Template2() As ITemplate Get Return _templates(1) End Get Set(ByVal Value As ITemplate) _templates(1) = Value End Set End Property <Browsable(False), _ PersistenceMode(PersistenceMode.InnerProperty)> _ Public Property Template3() As ITemplate Get Return _templates(2) End Get Set(ByVal Value As ITemplate) _templates(2) = Value End Set End Property <Browsable(False), _ PersistenceMode(PersistenceMode.InnerProperty)> _ Public Property Template4() As ITemplate Get Return _templates(3) End Get Set(ByVal Value As ITemplate) _templates(3) = Value End Set End Property Protected Overrides Sub CreateChildControls() ' Instantiate the template inside the panel ' then add the panel to the Controls collection Dim i As Integer For i = 0 To 3 Dim pan As New Panel() _templates(i).InstantiateIn(pan) Me.Controls.Add(pan) Next End Sub End Class ' Designer for the TemplateGroupsSample class Public Class TemplateGroupsSampleDesigner Inherits System.Web.UI.Design.ControlDesigner Private col As TemplateGroupCollection = Nothing Public Overrides Sub Initialize(ByVal Component As IComponent) ' Initialize the base MyBase.Initialize(Component) ' Turn on template editing SetViewFlags(ViewFlags.TemplateEditing, True) End Sub ' Add instructions to the placeholder view of the control Public Overloads Overrides Function GetDesignTimeHtml() As String Return CreatePlaceHolderDesignTimeHtml("Click here and use " & _ "the task menu to edit the templates.") End Function Public Overrides ReadOnly Property TemplateGroups() As TemplateGroupCollection Get If IsNothing(col) Then ' Get the base collection col = MyBase.TemplateGroups ' Create variables Dim tempGroup As TemplateGroup Dim tempDef As TemplateDefinition Dim ctl As TemplateGroupsSample ' Get reference to the component as TemplateGroupsSample ctl = CType(Component, TemplateGroupsSample) ' Create a TemplateGroup tempGroup = New TemplateGroup("Template Set A") ' Create a TemplateDefinition tempDef = New TemplateDefinition(Me, "Template A1", ctl, "Template1", True) ' Add the TemplateDefinition to the TemplateGroup tempGroup.AddTemplateDefinition(tempDef) ' Create another TemplateDefinition tempDef = New TemplateDefinition(Me, "Template A2", ctl, "Template2", True) ' Add the TemplateDefinition to the TemplateGroup tempGroup.AddTemplateDefinition(tempDef) ' Add the TemplateGroup to the TemplateGroupCollection col.Add(tempGroup) ' Create another TemplateGroup and populate it tempGroup = New TemplateGroup("Template Set B") tempDef = New TemplateDefinition(Me, "Template B1", ctl, "Template3", True) tempGroup.AddTemplateDefinition(tempDef) tempDef = New TemplateDefinition(Me, "Template B2", ctl, "Template4", True) tempGroup.AddTemplateDefinition(tempDef) ' Add the TemplateGroup to the TemplateGroupCollection col.Add(tempGroup) End If Return col End Get End Property ' Do not allow direct resizing unless in TemplateMode Public Overrides ReadOnly Property AllowResize() As Boolean Get If Me.InTemplateMode Then Return True Else Return False End If End Get End Property End Class End Namespace <br /><span space="preserve">...</span><br /><%@ Page Language="VB" %> <%@ Register TagPrefix="aspSample" Namespace="ASPNet.Design.Samples" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html > <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> <aspSample:TemplateGroupsSample runat=server ID=TGSample1> </aspSample:TemplateGroupsSample> </div> </form> </body> </html>
using System; using System.ComponentModel; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.Design; namespace ASPNet.Design.Samples { // Set an attribute reference to the designer, and define // the HTML markup that the toolbox will write into the source. [Designer(typeof(TemplateGroupsSampleDesigner)), ToolboxData("<{0}:TemplateGroupsSample runat=server></{0}:TemplateGroupsSample>")] public sealed class TemplateGroupsSample : WebControl, INamingContainer { // Field for the templates private ITemplate[] _templates; // Constructor public TemplateGroupsSample() { _templates = new ITemplate[4]; } // For each template property, set the designer attributes // so the property does not appear in the property grid, but // changes to the template are persisted in the control. [Browsable(false), PersistenceMode(PersistenceMode.InnerProperty)] public ITemplate Template1 { get { return _templates[0]; } set { _templates[0] = value; } } [Browsable(false), PersistenceMode(PersistenceMode.InnerProperty)] public ITemplate Template2 { get { return _templates[1]; } set { _templates[1] = value; } } [Browsable(false), PersistenceMode(PersistenceMode.InnerProperty)] public ITemplate Template3 { get { return _templates[2]; } set { _templates[2] = value; } } [Browsable(false), PersistenceMode(PersistenceMode.InnerProperty)] public ITemplate Template4 { get { return _templates[3]; } set { _templates[3] = value; } } protected override void CreateChildControls() { // Instantiate each template inside a panel // then add the panel to the Controls collection for (int i = 0; i < 4; i++) { Panel pan = new Panel(); _templates[i].InstantiateIn(pan); this.Controls.Add(pan); } } } // Designer for the TemplateGroupsSample control public class TemplateGroupsSampleDesigner : ControlDesigner { TemplateGroupCollection col = null; public override void Initialize(IComponent component) { // Initialize the base base.Initialize(component); // Turn on template editing SetViewFlags(ViewFlags.TemplateEditing, true); } // Add instructions to the placeholder view of the control public override string GetDesignTimeHtml() { return CreatePlaceHolderDesignTimeHtml("Click here and use " + "the task menu to edit the templates."); } public override TemplateGroupCollection TemplateGroups { get { if (col == null) { // Get the base collection col = base.TemplateGroups; // Create variables TemplateGroup tempGroup; TemplateDefinition tempDef; TemplateGroupsSample ctl; // Get reference to the component as TemplateGroupsSample ctl = (TemplateGroupsSample)Component; // Create a TemplateGroup tempGroup = new TemplateGroup("Template Set A"); // Create a TemplateDefinition tempDef = new TemplateDefinition(this, "Template A1", ctl, "Template1", true); // Add the TemplateDefinition to the TemplateGroup tempGroup.AddTemplateDefinition(tempDef); // Create another TemplateDefinition tempDef = new TemplateDefinition(this, "Template A2", ctl, "Template2", true); // Add the TemplateDefinition to the TemplateGroup tempGroup.AddTemplateDefinition(tempDef); // Add the TemplateGroup to the TemplateGroupCollection col.Add(tempGroup); // Create another TemplateGroup and populate it tempGroup = new TemplateGroup("Template Set B"); tempDef = new TemplateDefinition(this, "Template B1", ctl, "Template3", true); tempGroup.AddTemplateDefinition(tempDef); tempDef = new TemplateDefinition(this, "Template B2", ctl, "Template4", true); tempGroup.AddTemplateDefinition(tempDef); // Add the TemplateGroup to the TemplateGroupCollection col.Add(tempGroup); } return col; } } // Do not allow direct resizing unless in TemplateMode public override bool AllowResize { get { if (this.InTemplateMode) return true; else return false; } } } }

System.Web.UI.Design.DesignerObject
System.Web.UI.Design.TemplateDefinition


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


TemplateDefinition コンストラクタ (ControlDesigner, String, Object, String, Boolean)
アセンブリ: System.Design (system.design.dll 内)

Public Sub New ( _ designer As ControlDesigner, _ name As String, _ templatedObject As Object, _ templatePropertyName As String, _ serverControlsOnly As Boolean _ )
Dim designer As ControlDesigner Dim name As String Dim templatedObject As Object Dim templatePropertyName As String Dim serverControlsOnly As Boolean Dim instance As New TemplateDefinition(designer, name, templatedObject, templatePropertyName, serverControlsOnly)
public TemplateDefinition ( ControlDesigner designer, string name, Object templatedObject, string templatePropertyName, bool serverControlsOnly )
public: TemplateDefinition ( ControlDesigner^ designer, String^ name, Object^ templatedObject, String^ templatePropertyName, bool serverControlsOnly )
public TemplateDefinition ( ControlDesigner designer, String name, Object templatedObject, String templatePropertyName, boolean serverControlsOnly )
public function TemplateDefinition ( designer : ControlDesigner, name : String, templatedObject : Object, templatePropertyName : String, serverControlsOnly : boolean )

例外の種類 | 条件 |
---|---|
ArgumentNullException | designer が null 参照 (Visual Basic では Nothing) です。 または templatedObject が null 参照 (Visual Basic では Nothing) です。 |


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


TemplateDefinition コンストラクタ (ControlDesigner, String, Object, String, Style)
アセンブリ: System.Design (system.design.dll 内)

Public Sub New ( _ designer As ControlDesigner, _ name As String, _ templatedObject As Object, _ templatePropertyName As String, _ style As Style _ )
Dim designer As ControlDesigner Dim name As String Dim templatedObject As Object Dim templatePropertyName As String Dim style As Style Dim instance As New TemplateDefinition(designer, name, templatedObject, templatePropertyName, style)
public TemplateDefinition ( ControlDesigner designer, string name, Object templatedObject, string templatePropertyName, Style style )
public: TemplateDefinition ( ControlDesigner^ designer, String^ name, Object^ templatedObject, String^ templatePropertyName, Style^ style )
public TemplateDefinition ( ControlDesigner designer, String name, Object templatedObject, String templatePropertyName, Style style )
public function TemplateDefinition ( designer : ControlDesigner, name : String, templatedObject : Object, templatePropertyName : String, style : Style )

例外の種類 | 条件 |
---|---|
ArgumentNullException | designer が null 参照 (Visual Basic では Nothing) です。 または templatedObject が null 参照 (Visual Basic では Nothing) です。 |


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


TemplateDefinition コンストラクタ (ControlDesigner, String, Object, String, Style, Boolean)
アセンブリ: System.Design (system.design.dll 内)

Public Sub New ( _ designer As ControlDesigner, _ name As String, _ templatedObject As Object, _ templatePropertyName As String, _ style As Style, _ serverControlsOnly As Boolean _ )
Dim designer As ControlDesigner Dim name As String Dim templatedObject As Object Dim templatePropertyName As String Dim style As Style Dim serverControlsOnly As Boolean Dim instance As New TemplateDefinition(designer, name, templatedObject, templatePropertyName, style, serverControlsOnly)
public TemplateDefinition ( ControlDesigner designer, string name, Object templatedObject, string templatePropertyName, Style style, bool serverControlsOnly )
public: TemplateDefinition ( ControlDesigner^ designer, String^ name, Object^ templatedObject, String^ templatePropertyName, Style^ style, bool serverControlsOnly )
public TemplateDefinition ( ControlDesigner designer, String name, Object templatedObject, String templatePropertyName, Style style, boolean serverControlsOnly )
public function TemplateDefinition ( designer : ControlDesigner, name : String, templatedObject : Object, templatePropertyName : String, style : Style, serverControlsOnly : boolean )

例外の種類 | 条件 |
---|---|
ArgumentNullException | designer が null 参照 (Visual Basic では Nothing) です。 または templatedObject が null 参照 (Visual Basic では Nothing) です。 |


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


TemplateDefinition コンストラクタ

名前 | 説明 |
---|---|
TemplateDefinition (ControlDesigner, String, Object, String) | 指定したデザイナ、テンプレート名、テンプレート、およびプロパティ名を使用して、TemplateDefinition クラスの新しいインスタンスを作成します。 |
TemplateDefinition (ControlDesigner, String, Object, String, Boolean) | 指定したデザイナ、テンプレート名、テンプレート、プロパティ名を使用して、さらに、テンプレート コンテンツを Web サーバー コントロールに限定するかどうかを指定して、TemplateDefinition クラスの新しいインスタンスを作成します。 |
TemplateDefinition (ControlDesigner, String, Object, String, Style) | 指定したデザイナ、テンプレート名、テンプレート、プロパティ名、および Style オブジェクトを使用して、TemplateDefinition クラスの新しいインスタンスを作成します。 |
TemplateDefinition (ControlDesigner, String, Object, String, Style, Boolean) | 指定したデザイナ、テンプレート名、テンプレート、プロパティ名、Style オブジェクトを使用して、さらに、コンテンツを Web サーバー コントロールに限定するかどうかを指定して、TemplateDefinition クラスの新しいインスタンスを作成します。 |

TemplateDefinition コンストラクタ (ControlDesigner, String, Object, String)
アセンブリ: System.Design (system.design.dll 内)

Public Sub New ( _ designer As ControlDesigner, _ name As String, _ templatedObject As Object, _ templatePropertyName As String _ )
Dim designer As ControlDesigner Dim name As String Dim templatedObject As Object Dim templatePropertyName As String Dim instance As New TemplateDefinition(designer, name, templatedObject, templatePropertyName)
public TemplateDefinition ( ControlDesigner designer, string name, Object templatedObject, string templatePropertyName )
public: TemplateDefinition ( ControlDesigner^ designer, String^ name, Object^ templatedObject, String^ templatePropertyName )
public TemplateDefinition ( ControlDesigner designer, String name, Object templatedObject, String templatePropertyName )
public function TemplateDefinition ( designer : ControlDesigner, name : String, templatedObject : Object, templatePropertyName : String )

例外の種類 | 条件 |
---|---|
ArgumentNullException | designer が null 参照 (Visual Basic では Nothing) です。 または templatedObject が null 参照 (Visual Basic では Nothing) です。 |


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


TemplateDefinition プロパティ

名前 | 説明 | |
---|---|---|
![]() | AllowEditing | テンプレート コンテンツを編集できるかどうかを示す値を取得します。 |
![]() | Content | テンプレート コンテンツを表す HTML マークアップを取得または設定します。 |
![]() | Designer | 関連付けられたデザイナ コンポーネントを取得します。 ( DesignerObject から継承されます。) |
![]() | Name | オブジェクトの名前を取得します。 ( DesignerObject から継承されます。) |
![]() | Properties | オブジェクトのプロパティを取得します。 ( DesignerObject から継承されます。) |
![]() | ServerControlsOnly | テンプレート コンテンツを、TemplateDefinition コンストラクタで設定された Web サーバー コントロールに限定するかどうかを示す値を取得します。このプロパティは読み取り専用です。 |
![]() | Style | TemplateDefinition コンストラクタで設定されたテンプレートに適用するスタイルを取得します。このプロパティは読み取り専用です。 |
![]() | SupportsDataBinding | テンプレートがデータ バインディングをサポートするかどうかを示す値を取得または設定します。 |
![]() | TemplatedObject | テンプレートの配置されているコンポーネントを取得します。このプロパティは読み取り専用です。 |
![]() | TemplatePropertyName | デザイン ホストの Properties リストに表示されるテンプレートのプロパティ名を取得します。 |

TemplateDefinition メソッド

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | GetService | 指定した型で識別されるサービスをデザイン ホストから取得します。 ( DesignerObject から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

TemplateDefinition メンバ
デザイン時に Web サーバー コントロールのテンプレート要素を定義するプロパティおよびメソッドを提供します。
TemplateDefinition データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | AllowEditing | テンプレート コンテンツを編集できるかどうかを示す値を取得します。 |
![]() | Content | テンプレート コンテンツを表す HTML マークアップを取得または設定します。 |
![]() | Designer | 関連付けられたデザイナ コンポーネントを取得します。(DesignerObject から継承されます。) |
![]() | Name | オブジェクトの名前を取得します。(DesignerObject から継承されます。) |
![]() | Properties | オブジェクトのプロパティを取得します。(DesignerObject から継承されます。) |
![]() | ServerControlsOnly | テンプレート コンテンツを、TemplateDefinition コンストラクタで設定された Web サーバー コントロールに限定するかどうかを示す値を取得します。このプロパティは読み取り専用です。 |
![]() | Style | TemplateDefinition コンストラクタで設定されたテンプレートに適用するスタイルを取得します。このプロパティは読み取り専用です。 |
![]() | SupportsDataBinding | テンプレートがデータ バインディングをサポートするかどうかを示す値を取得または設定します。 |
![]() | TemplatedObject | テンプレートの配置されているコンポーネントを取得します。このプロパティは読み取り専用です。 |
![]() | TemplatePropertyName | デザイン ホストの Properties リストに表示されるテンプレートのプロパティ名を取得します。 |

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | GetService | 指定した型で識別されるサービスをデザイン ホストから取得します。 (DesignerObject から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

- TemplateDefinitionのページへのリンク