Základní třídy návrháře
Provádění všech návrhářů IDesigner rozhraní, které definuje základní návrháře rozhraní metody.Na.NET Framework také poskytuje sadu základních návrháře tříd, které poskytuje metody, které mohou být užitečné pro návrháře, které podporují určité typy komponent nebo ovládacích prvků.
Rozhraní IDesigner
Musí implementovat návrháře třídy IDesigner rozhraní, jak je znázorněno v následujícím příkladu kódu.
Public Interface IDesigner
Sub Dispose()
Sub Initialize(component As IComponent)
' Other methods.
...
ReadOnly Property Component() As IComponent
' Other properties.
...
End Interface
public interface IDesigner {
void Dispose();
void Initialize(IComponent component);
// Other methods.
...
IComponent Component {
get;
}
// Other properties.
...
}
Initialize Metodou IDesigner se nazývá po komponenty pro návrháře byly umístěny a inicializován a Návrhář byl vytvořen.Můžete přepsat Initialize metoda provádět akce, které by mělo docházet v součásti nebo v době inicializace návrháře.Konstruktor inicializace součásti nelze nahradit, ale můžete jej rozšířit nebo vlastností, které se inicializuje.Component Vlastnost IDesigner je nastavit pomocí této metody inicializace.Vždy by měl zavolat base.Initialize(component) z vašeho Initialize metodu, pokud přepsat tuto metodu.Přístup součástí IDesigner z jeho Component vlastnost.
Component Vlastnost poskytuje přístup k součásti, která je přidružena Návrhář.Tato vlastnost nastavena při prvním vytvoření návrháře objektu a jeho Initialize je volána metoda.Komponenta má web přidružen a Návrhář lze získat z okna Návrhář hostitele služby pomocí tohoto webu.
DoDefaultAction Metoda je volána, komponenta nebo ovládací prvek je poklepání.
Verbs Může být tato vlastnost přepsána vrátit DesignerVerbCollection , který obsahuje objekty, které jsou nezbytné rozšířit položky místní nabídky pro komponentu.
Dispose Metoda je vyvoláno návrháře objektu musí být zničeny.Nazývá se vždy, když je komponenta je odebrán z kontejneru návrhu.
Základní třída Designer pro komponenty
ComponentDesigner Třída implementuje IDesigner a IDesignerFilter rozhraní nabízí další metody, které mohou být užitečné některé návrháře součásti.
Základní třída Designer pro ovládací prvky model Windows Forms
Je základní třída návrháře pro ovládací prvky model Windows Forms ControlDesigner.Tato třída je odvozen z ComponentDesigner a poskytuje další metody vhodné pro přizpůsobení vzhledu a chování ovládacího prvku model Windows Forms.Příklad implementace model Windows Forms designer naleznete v Postupy: Implementace návrháře pro ovládací prvek.
DocumentDesigner Třída poskytuje základní designer pro rozšíření chování režimu návrhu a poskytující zobrazení režimu návrhu na kořenové úrovni, Control , podporuje ovládací prvky vnořené a přijímá zprávy posuvníku.Další informace naleznete v tématu Postupy: Vytvoření ovládacího prvku Windows Forms, který využívá funkce sady Visual Studio pro dobu návrhu.
[!POZNÁMKA]
Je nutné přidat odkaz na sestavení návrhu, System.Design.dll.Toto sestavení není součástí.NET Framework 4 profilu klienta.Chcete-li přidat odkaz na System.Design.dll, je nutné změnit cílový rámec projektu na .NET Framework 4.
Základní třída Designer, ASP.Ovládací prvky serveru NET
Základní třída návrháře pro prostředí ASP.Ovládací prvky NET serveru je ControlDesigner.Tato třída poskytuje základní funkce pro vykreslování HTML vlastního návrhu.
Základní třídy pro integraci návrhu
TypeConverter Třída poskytuje základní třída pro převádění typu textové vyjádření.Další informace o převaděčích typu viz Postupy: Implementace konvertoru typů nebo Převod zobecněného typu.
UITypeEditor Třída poskytuje základní třídy, který lze odvodit z rozšířit implementovat vlastní typ editor pro prostředí návrhu.Další informace o implementaci UITypeEditor, viz Přehled editorů typů uživatelského rozhraní.
Základní třídy pro návrháře vzhled a chování
Behavior Třídy lze rozšířit na jakýkoli typ chování uživatelské rozhraní, včetně výběru tažením, rozvíjet a změnit chování.Malování a testování přístupů jsou prováděny Glyph třídy.
Další informace naleznete v tématu Přehled služby chování.
[!POZNÁMKA]
Je nutné přidat odkaz na sestavení návrhu, System.Design.dll.Toto sestavení není součástí.NET Framework 4 profilu klienta.Chcete-li přidat odkaz na System.Design.dll, je nutné změnit cílový rámec projektu na .NET Framework 4.
Základní třídy pro návrháře zavaděče
BasicDesignerLoader Třída poskytuje implementaci IDesignerLoaderService rozhraní.A BasicDesignerLoader je kompletní implementace zaváděcí program návrháře bez nic o perzistenci formátu.
CodeDomDesignerLoaderje abstraktní třída, která poskytuje úplné návrháře loader založen na modelu objektu dokumentu (CodeDOM) kódu.
Základní třídy pro serializaci Designer
CodeDomSerializerBase Třída poskytuje základní třída pro CodeDomSerializer tříd.CodeDomSerializerBase Třída je použita jako základ sdílené mezi CodeDomSerializer a TypeCodeDomSerializer tříd.
DesignerSerializationManager Třída poskytuje implementaci IDesignerSerializationManager rozhraní.
Další informace naleznete v tématu Přehled serializace návrháře.
Základní třída pro inteligentní značky
DesignerActionList Třída poskytuje základní třída pro typy, které definovat seznam položek, které slouží k vytvoření panelu inteligentní značky.Další informace naleznete v tématu Postupy: Připojení inteligentních značek ke komponentě ve Windows Forms.
[!POZNÁMKA]
Je nutné přidat odkaz na sestavení návrhu, System.Design.dll.Toto sestavení není součástí.NET Framework 4 profilu klienta.Chcete-li přidat odkaz na System.Design.dll, je nutné změnit cílový rámec projektu na .NET Framework 4.
Základní třída pro vlastní rozložení
LayoutEngine Třída poskytuje základní třída pro provádění rozložení motory.TableLayoutPanel a FlowLayoutPanel ovládací prvky používají LayoutEngine třídy poskytnout rozložení chování.Další informace naleznete v tématu Postupy: Implementace vlastního modulu pro rozložení.
Standardní návrháři
Windows Software Development Kit (SDK) Obsahuje sadu návrháři k podpoře určitých typů komponent.Tyto návrháři jsou pojmenovány po součástí návrhu, slovo Designer dat.Například Návrhář pro Control je třída ControlDesigner.
Běžné funkce Designer
Přístup k návrhu služby z Návrháře
Většina typů návrhu služby mohou být vyžádány až GetService metoda předáním typ služby požadovat.There is a GetService method on Component and ComponentDesigner.Je také GetService metodu na IServiceProvider, který je implementován ISite vrácené Site vlastnost IComponent umístěny v návrhovém režimu.
Následující kód ukazuje, jak získat IDesignerHost rozhraní služby a IMenuCommandService použití GetService metoda.
Další informace naleznete v tématu Postupy: Přístup ke službám během návrhu.
Následující kód ukazuje, jak získat služby z rozhraní poskytovatel metadat režimu návrhu.
' Obtain an IDesignerHost service from the design-time environment.
Dim host As IDesignerHost = CType(Me.Component.Site.GetService(GetType(IDesignerHost)), IDesignerHost)
' Obtain an IMenuCommandService service.
Dim mcs As IMenuCommandService = CType(Me.Component.Site.GetService(GetType(IMenuCommandService)), IMenuCommandService)
// Obtain an IDesignerHost service from the design-time environment.
IDesignerHost host = (IDesignerHost)this.Component.Site.GetService(typeof(IDesignerHost));
// Obtain an IMenuCommandService service.
IMenuCommandService mcs =
(IMenuCommandService)this.Component.Site.GetService(typeof(IMenuCommandService));
Přístup součástí projektu z Návrháře
Návrhář můžete získat přístup k součástem v režimu návrhu dokumentu přístup k Components kolekce Container vlastnost IDesignerHost rozhraní služby.Následující příklad kódu ukazuje, jak získat přístup k součásti v režimu návrhu projektu.
' Obtains an IDesignerHost service from the design-time environment.
Dim host As IDesignerHost = CType(Me.Component.Site.GetService(GetType(IDesignerHost)), IDesignerHost)
' Gets the components container for the current design-time project.
Dim container As IContainer = host.Container
' The host.Container IContainer contains each IComponent in the project.
// Obtains an IDesignerHost service from the design-time environment.
IDesignerHost host = (IDesignerHost)this.Component.Site.GetService(typeof(IDesignerHost));
// Gets the components container for the current design-time project.
IContainer container = host.Container;
// The host.Container IContainer contains each IComponent in the project.
Jakmile máte přístup ke kolekci komponent, můžete použít TypeDescriptor metod a PropertyDescriptor objekty a typy a nastavit hodnoty vlastností komponent.Můžete také vytvořit pomocí součásti CreateComponent metodu IDesignerHost rozhraní.
Rozšíření Návrhář
Když je odvozena od komponenty související designer, Návrhář základní třídy je spojen s odvozené součásti ve výchozím nastavení.Můžete přiřadit různé Návrhář komponenty použitím DesignerAttribute atribut, který určuje typ Návrhář přidružit komponenty.Je běžné odvozené součásti mít Návrhář, která rozšiřuje základní designer.
Další informace naleznete v tématu Postupy: Implementace návrháře pro ovládací prvek.
Rozšíření Návrhář
Definování třídy, který je odvozen ze základní třídy návrháře.
Přidružit novou třídu Návrhář komponenty použitím DesignerAttribute.
Následující příklad kódu definuje Návrhář, který rozšiřuje LabelDesigner a přidruží vlastní štítek, který rozšiřuje Label.
Namespace MyControls.Design
Public Class MyLabelDesigner
Inherits System.Web.UI.Design.WebControls.LabelDesigner
End Class
End Namespace
Namespace MyControls
<Designer(GetType(MyControls.Design.MyLabelDesigner))> _
Public Class MyLabel
Inherits System.Web.UI.WebControls.Label
End Class
End Namespace
namespace MyControls.Design {
public class MyLabelDesigner : System.Web.UI.Design.WebControls.LabelDesigner {}
}
namespace MyControls {
[Designer(typeof(MyControls.Design.MyLabelDesigner))]
public class MyLabel : System.Web.UI.WebControls.Label {}
}
[!POZNÁMKA]
Pokud definujete designer pro třídu, která je uzavřena nebo pokud chcete další třídy nebo dědí z vašeho návrháře, provedete návrháře třídy vnitřní vaše sestavení.Návrhář hostitele bude možné vytvořit instanci aplikace designer, ale není přispěje k veřejné objektový model.
Viz také
Úkoly
Postupy: Přístup ke službám během návrhu
Postupy: Přístup k podpoře návrhu ve Windows Forms
Koncepty
Postupy: Implementace návrháře pro ovládací prvek