Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

TemplatedControlDesigner Class

Extends design-time behavior for template-based server controls.

Namespace:  System.Web.UI.Design
Assembly:  System.Design (in System.Design.dll)
[SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
public abstract class TemplatedControlDesigner : ControlDesigner

The TemplatedControlDesigner type exposes the following members.

  NameDescription
Public methodTemplatedControlDesignerInitializes a new instance of the TemplatedControlDesigner class.
Top
  NameDescription
Public propertyActionListsGets the action list collection for the control designer. (Inherited from ControlDesigner.)
Public propertyActiveTemplateEditingFrame Obsolete. Gets the active template editing frame.
Public propertyAllowResizeGets a value indicating whether the control can be resized in the design-time environment. (Inherited from ControlDesigner.)
Public propertyAssociatedComponentsGets the collection of components associated with the component managed by the designer. (Inherited from ComponentDesigner.)
Public propertyAutoFormatsGets the collection of predefined automatic formatting schemes to display in the Auto Format dialog box for the associated control at design time. (Inherited from ControlDesigner.)
Public propertyBehavior Obsolete. Gets or sets the DHTML behavior that is associated with the designer. (Inherited from HtmlControlDesigner.)
Public propertyCanEnterTemplateModeGets a value indicating whether or not this designer will allow the viewing or editing of templates.
Public propertyComponentGets the component this designer is designing. (Inherited from ComponentDesigner.)
Public propertyDataBindingsGets the data bindings collection for the current control. (Inherited from HtmlControlDesigner.)
Protected propertyDataBindingsEnabledInfrastructure. Gets a value indicating whether the designer allows data binding. (Overrides ControlDesigner.DataBindingsEnabled.)
Protected propertyDesignerStateGets an object that is used to persist data for the associated control at design time. (Inherited from ControlDesigner.)
Protected propertyDesignTimeElement Obsolete. Gets the design-time object representing the control that is associated with the HtmlControlDesigner object on the design surface. (Inherited from HtmlControlDesigner.)
Protected propertyDesignTimeElementView Obsolete. Gets the view-control object for the control designer. (Inherited from ControlDesigner.)
Public propertyDesignTimeHtmlRequiresLoadComplete Obsolete. Gets a value indicating whether the design host must finish loading before the GetDesignTimeHtml method can be called. (Inherited from ControlDesigner.)
Public propertyExpressionsGets the expression bindings for the current control at design time. (Inherited from HtmlControlDesigner.)
Protected propertyHidePropertiesInTemplateModeInfrastructure. Gets a value indicating whether the properties of the associated control are hidden when the control is in template mode. (Inherited from ControlDesigner.)
Public propertyIDGets or sets the ID string for the control. (Inherited from ControlDesigner.)
Protected propertyInheritanceAttributeGets an attribute that indicates the type of inheritance of the associated component. (Inherited from ComponentDesigner.)
Protected propertyInheritedGets a value indicating whether this component is inherited. (Inherited from ComponentDesigner.)
Public propertyInTemplateMode Obsolete. Gets a value indicating whether the designer document is in template mode.
Public propertyIsDirty Obsolete. Gets or sets a value indicating whether the Web server control has been marked as changed. (Inherited from ControlDesigner.)
Protected propertyParentComponentGets the parent component for this designer. (Inherited from ComponentDesigner.)
Public propertyReadOnly Obsolete. Gets or sets a value indicating whether the properties of the control are read-only at design time. (Inherited from ControlDesigner.)
Protected propertyRootDesignerGets the control designer for the Web Forms page that contains the associated control. (Inherited from ControlDesigner.)
Protected propertyShadowPropertiesGets a collection of property values that override user settings. (Inherited from ComponentDesigner.)
Public propertyShouldCodeSerialize Obsolete. Gets or sets a value indicating whether to create a field declaration for the control in the code-behind file for the current design document during serialization. (Inherited from HtmlControlDesigner.)
Protected propertyTagGets an object representing the HTML markup element for the associated control. (Inherited from ControlDesigner.)
Public propertyTemplateGroupsGets a collection of template groups, each containing a template definition. (Overrides ControlDesigner.TemplateGroups.)
Protected propertyUsePreviewControlGets a value indicating whether the control designer uses a temporary preview control to generate the design-time HTML markup. (Inherited from ControlDesigner.)
Public propertyVerbsGets the design-time verbs supported by the component that is associated with the designer. (Inherited from ComponentDesigner.)
Public propertyViewControlGets or sets a Web server control that can be used for previewing the design-time HTML markup. (Inherited from ControlDesigner.)
Public propertyViewControlCreatedGets or sets a value indicating whether a View control has been created for display on the design surface. (Inherited from ControlDesigner.)
Protected propertyVisibleGets a value that indicates whether the control is visible at design time. (Inherited from ControlDesigner.)
Top
  NameDescription
Protected methodCreateErrorDesignTimeHtml(String)Creates HTML markup to display a specified error message at design time. (Inherited from ControlDesigner.)
Protected methodCreateErrorDesignTimeHtml(String, Exception)Creates the HTML markup to display a specified exception error message at design time. (Inherited from ControlDesigner.)
Protected methodCreatePlaceHolderDesignTimeHtml()Provides a simple rectangular placeholder representation that displays the type and ID of the control. (Inherited from ControlDesigner.)
Protected methodCreatePlaceHolderDesignTimeHtml(String)Provides a simple rectangular placeholder representation that displays the type and ID of the control, and also additional specified instructions or information. (Inherited from ControlDesigner.)
Protected methodCreateTemplateEditingFrame Obsolete. When overridden in a derived class, creates a template editing frame for the specified verb.
Protected methodCreateViewControlReturns a copy of the associated control for viewing or rendering on the design surface. (Inherited from ControlDesigner.)
Public methodDispose()Releases all resources used by the ComponentDesigner. (Inherited from ComponentDesigner.)
Protected methodDispose(Boolean)Releases the unmanaged resources that are used by the HtmlControlDesigner object and optionally releases the managed resources. (Inherited from HtmlControlDesigner.)
Public methodDoDefaultActionCreates a method signature in the source code file for the default event on the component and navigates the user's cursor to that location. (Inherited from ComponentDesigner.)
Public methodEnterTemplateMode Obsolete. Opens a particular template frame object for editing in the designer.
Public methodEquals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Public methodExitTemplateMode Obsolete. Closes the currently active template editing frame after saving any relevant changes.
Protected methodFinalizeAttempts to free resources by calling Dispose(false) before the object is reclaimed by garbage collection. (Inherited from ComponentDesigner.)
Public methodGetBoundsRetrieves the coordinates of the rectangle representing the boundaries for the control as displayed on the design surface. (Inherited from ControlDesigner.)
Protected methodGetCachedTemplateEditingVerbs Obsolete. Gets the cached template editing verbs.
Public methodGetDesignTimeHtml()Retrieves the HTML markup that is used to represent the control at design time. (Inherited from ControlDesigner.)
Public methodGetDesignTimeHtml(DesignerRegionCollection)Retrieves the HTML markup to display the control and populates the collection with the current control designer regions. (Inherited from ControlDesigner.)
Public methodGetEditableDesignerRegionContentReturns the content for an editable region of the design-time view of the associated control. (Inherited from ControlDesigner.)
Protected methodGetEmptyDesignTimeHtmlRetrieves the HTML markup to represent a Web server control at design time that will have no visual representation at run time. (Inherited from ControlDesigner.)
Protected methodGetErrorDesignTimeHtmlRetrieves the HTML markup that provides information about the specified exception. (Inherited from ControlDesigner.)
Public methodGetHashCodeServes as the default hash function. (Inherited from Object.)
Public methodGetPersistenceContentRetrieves the persistable inner HTML markup of the control at design time. (Inherited from ControlDesigner.)
Public methodGetPersistInnerHtml Obsolete. Retrieves the persistable inner HTML markup of the control. (Inherited from ControlDesigner.)
Protected methodGetServiceAttempts to retrieve the specified type of service from the design mode site of the designer's component. (Inherited from ComponentDesigner.)
Public methodGetTemplateContainerDataItemProperty Obsolete. Gets the data item property of the template's container.
Public methodGetTemplateContainerDataSource Obsolete. Gets the data source of the template's container.
Public methodGetTemplateContent Obsolete. When overridden in a derived class, gets the template's content.
Public methodGetTemplateEditingVerbs Obsolete. Gets the template editing verbs available to the designer.
Protected methodGetTemplateFromTextCreates a template from the specified text.
Public methodGetTemplatePropertyParentType Obsolete. Gets the type of the parent of the template property.
Protected methodGetTextFromTemplateGets a string of text that represents the specified template.
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodGetViewRendering()Retrieves an object that contains the design-time markup for the content and regions of the associated control. (Inherited from ControlDesigner.)
Public methodInitializeInitializes the designer and loads the specified component. (Overrides ControlDesigner.Initialize(IComponent).)
Public methodInitializeExistingComponentReinitializes an existing component. (Inherited from ComponentDesigner.)
Public methodInitializeNewComponentInitializes a newly created component. (Inherited from ComponentDesigner.)
Public methodInitializeNonDefault Obsolete. Initializes the settings for an imported component that is already initialized to settings other than the defaults. (Inherited from ComponentDesigner.)
Public methodInvalidate()Invalidates the whole area of the control that is displayed on the design surface and signals the control designer to redraw the control. (Inherited from ControlDesigner.)
Public methodInvalidate(Rectangle)Invalidates the specified area of the control that is displayed on the design surface and signals the control designer to redraw the control. (Inherited from ControlDesigner.)
Protected methodInvokeGetInheritanceAttributeGets the InheritanceAttribute of the specified ComponentDesigner. (Inherited from ComponentDesigner.)
Public methodIsPropertyBound Obsolete. Retrieves a value indicating whether the specified property on the associated control is data-bound. (Inherited from ControlDesigner.)
Public methodLocalizeUses the provided resource writer to persist the localizable properties of the associated control to a resource in the design host. (Inherited from ControlDesigner.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodOnAutoFormatAppliedCalled when a predefined, automatic formatting scheme has been applied to the associated control. (Inherited from ControlDesigner.)
Protected methodOnBehaviorAttached Obsolete. Provides an opportunity to perform additional processing when a behavior is attached to the designer. (Overrides HtmlControlDesigner.OnBehaviorAttached().)
Protected methodOnBehaviorDetaching Obsolete. Called when a behavior disassociates from the element. (Inherited from HtmlControlDesigner.)
Protected methodOnBindingsCollectionChanged Obsolete. Called when the data-binding collection changes. (Inherited from ControlDesigner.)
Protected methodOnClickCalled by the design host when the user clicks the associated control at design time. (Inherited from ControlDesigner.)
Public methodOnComponentChangedDelegate to handle the component changed event. (Overrides ControlDesigner.OnComponentChanged(Object, ComponentChangedEventArgs).)
Public methodOnComponentChangingRepresents the method that will handle the ComponentChanging event for the associated control. (Inherited from ControlDesigner.)
Protected methodOnControlResize Obsolete. Called when the associated Web server control has been resized in the design host at design time. (Inherited from ControlDesigner.)
Protected methodOnPaintCalled when the control designer draws the associated control on the design surface, if the CustomPaint value is true. (Inherited from ControlDesigner.)
Public methodOnSetComponentDefaults Obsolete. Sets the default properties for the component. (Inherited from ComponentDesigner.)
Public methodOnSetParentProvides an opportunity to perform additional processing when the parent of this designer is changed. (Overrides HtmlControlDesigner.OnSetParent().)
Protected methodOnTemplateModeChangedProvides an opportunity to perform additional processing when the template mode is changed.
Protected methodPostFilterAttributesAllows a designer to change or remove items from the set of attributes that it exposes through a TypeDescriptor. (Inherited from ComponentDesigner.)
Protected methodPostFilterEventsAllows a designer to change or remove items from the set of events that it exposes through a TypeDescriptor. (Inherited from ComponentDesigner.)
Protected methodPostFilterPropertiesAllows a designer to change or remove items from the set of properties that it exposes through a TypeDescriptor. (Inherited from ComponentDesigner.)
Protected methodPreFilterAttributesAllows a designer to add to the set of attributes that it exposes through a TypeDescriptor. (Inherited from ComponentDesigner.)
Protected methodPreFilterEventsSets the list of events that are exposed at design-time for the TypeDescriptor object for the component. (Inherited from HtmlControlDesigner.)
Protected methodPreFilterPropertiesAdds properties to or removes properties from the Properties grid in a design host at design time or provides new design-time properties that might correspond to properties on the associated control. (Inherited from ControlDesigner.)
Protected methodRaiseComponentChangedNotifies the IComponentChangeService that this component has been changed. (Inherited from ComponentDesigner.)
Protected methodRaiseComponentChangingNotifies the IComponentChangeService that this component is about to be changed. (Inherited from ComponentDesigner.)
Public methodRaiseResizeEvent Obsolete. Raises the OnControlResize event. (Inherited from ControlDesigner.)
Public methodRegisterCloneRegisters internal data in a cloned control. (Inherited from ControlDesigner.)
Protected methodSaveActiveTemplateEditingFrameSaves the active template editing frame.
Public methodSetEditableDesignerRegionContentSpecifies the content for an editable region of the control at design time. (Inherited from ControlDesigner.)
Protected methodSetRegionContentSpecifies the content for an editable region in the design-time view of the control. (Inherited from ControlDesigner.)
Public methodSetTemplateContent Obsolete. When overridden in a derived class, sets the specified template's content to the specified content.
Protected methodSetViewFlagsAssigns the specified bitwise ViewFlags enumeration to the specified flag value. (Inherited from ControlDesigner.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Public methodUpdateDesignTimeHtmlUpdates the design-time HTML. (Overrides ControlDesigner.UpdateDesignTimeHtml().)
Top
  NameDescription
Explicit interface implemetationPrivate methodIDesignerFilter.PostFilterAttributesFor a description of this member, see the IDesignerFilter.PostFilterAttributes method. (Inherited from ComponentDesigner.)
Explicit interface implemetationPrivate methodIDesignerFilter.PostFilterEventsFor a description of this member, see the IDesignerFilter.PostFilterEvents method. (Inherited from ComponentDesigner.)
Explicit interface implemetationPrivate methodIDesignerFilter.PostFilterPropertiesFor a description of this member, see the IDesignerFilter.PostFilterProperties method. (Inherited from ComponentDesigner.)
Explicit interface implemetationPrivate methodIDesignerFilter.PreFilterAttributesFor a description of this member, see the IDesignerFilter.PreFilterAttributes method. (Inherited from ComponentDesigner.)
Explicit interface implemetationPrivate methodIDesignerFilter.PreFilterEventsFor a description of this member, see the IDesignerFilter.PreFilterEvents method. (Inherited from ComponentDesigner.)
Explicit interface implemetationPrivate methodIDesignerFilter.PreFilterPropertiesFor a description of this member, see the IDesignerFilter.PreFilterProperties method. (Inherited from ComponentDesigner.)
Explicit interface implemetationPrivate propertyITreeDesigner.ChildrenFor a description of this member, see the ITreeDesigner.Children property. (Inherited from ComponentDesigner.)
Explicit interface implemetationPrivate propertyITreeDesigner.ParentFor a description of this member, see the ITreeDesigner.Parent property. (Inherited from ComponentDesigner.)
Top

Notes to Inheritors

Although this class is not obsolete, it is unnecessary because template-editing features have been built into ControlDesigner.

The following code example demonstrates how to create a control designer class that uses templates and derives from the ControlDesigner class.

To run the example, compile the code, and then in a design host such as Visual Studio 2005, view the page in Design view. Select the control, click the action list to select a template to modify, and then use the drag-and-drop feature to move controls into the template.

NoteNote

Your project must have a reference to the System.Design assembly.

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;
            }
        }
    }
}

.NET Framework

Supported in: 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.