Compartilhar via


Arquitetura de tempo de design

A ilustração a seguir fornece uma visão geral da arquitetura de tempo de design na.NET Framework.

Arquitetura de tempo de design

A.NET Framework fornece classes e interfaces para a personalização de interfaces de usuário e o comportamento de componentes em um ambiente de tempo de design. Um ambiente de tempo de design normalmente inclui um designer de formulários para organizar os componentes e um Pesquisador de propriedades para configurar os valores das propriedades de um componente. Um ambiente de tempo de design normalmente também fornece serviços de tempo de design que podem ser acessados e usados pelos mecanismos de tempo de design.

A.NET Framework define as interfaces que os desenvolvedores podem usar para implementar o suporte de tempo de design personalizado. Os mecanismos primários de estender o suporte em tempo de design se encontram as seguintes categorias: digite editores de designers, conversores de tipo e interface do usuário. Os atributos são aplicados a tipos e digitar os membros para associá-los esses provedores de suporte em tempo de design.

Atributos

Atributos de associar um tipo ou membro de tipo com uma classe que estende o comportamento em tempo de design. A DesignerAttribute associa um tipo de um designer. A TypeConverterAttribute associa um tipo ou membro do tipo um conversor de tipo. Um EditorAttribute associa um tipo ou membro do tipo um editor UI de tipo. Para obter mais informações sobre os atributos na.NET Framework, consulte Atributos de tempo de design para componentes e Atributos e suporte para tempo de design.

Designers

Um designer pode personalizar o comportamento de um componente em tempo de design, inclusive sua aparência, a inicialização e a interação com o usuário. Um designer pode adicionar, remover ou substituir as propriedades listadas em um navegador de propriedade para um componente selecionado. Um designer pode fornecer métodos definidos pelo usuário que podem ser vinculados a determinados eventos do componente ou executados a partir de um comando de menu personalizado, ou DesignerVerb. Um designer também pode usar os serviços fornecidos por um ambiente de tempo de design. Para obter mais informações sobre os designers, consulte Designers personalizados.

Conversores de tipo

Um conversor de tipo pode ser implementado para converter valores entre o tipo que ele foi criado para oferecer suporte e outros tipos de dados que ele conversão para ou a partir de valores. Um conversor de tipos também pode fornecer lógica para permitir a configuração de uma propriedade dentro de um navegador de propriedade em tempo de design. Um conversor de tipos pode fornecer uma lista de valores padrão para uma propriedade do tipo oferece suporte em tempo de design em um navegador de propriedade. Um conversor de tipos também pode produzir código de inicialização para inicializar uma propriedade em tempo de design. Para obter informações sobre como implementar um conversor de tipos, consulte Como implementar um conversor de tipos.

Editores de tipo de interface do usuário

Um editor UI de tipo pode fornecer uma interface de usuário personalizada (UI) para o valor de uma propriedade de edição e exibição de uma representação do valor da propriedade em tempo de design. Um editor UI de tipo é específico do tipo e fornece uma interface de usuário para configurar as propriedades do tipo que ele é criado para oferecer suporte, ou tipos derivados que não têm um atributo de substituição, em tempo de design. Um editor UI de tipo pode exibir um formulário do Windows ou a interface de configuração da lista suspensa para configurar uma propriedade. Para obter mais informações sobre como implementar um editor UI de tipo, consulte Como implementar um editor de tipos da interface do usuário.

Dica

Conversores de tipo e editores de tipo de interface do usuário são usados em tempo de design e em tempo de execução, enquanto os designers são usados apenas em tempo de design.

Tipos de design

As tabelas a seguir mostram algumas das importantes classes nos namespaces relacionados ao design.

System.Drawing.design

Tipo

Descrição

UITypeEditor

Fornece uma classe base que pode ser usada para implementar os editores de valor.

IToolboxService

Fornece métodos e propriedades para gerenciar e consultar a caixa de ferramentas no ambiente de desenvolvimento.

ToolboxItem

Fornece uma implementação básica de um item da caixa de ferramentas.

System.ComponentModel.design

Tipo

Descrição

DesignerActionList

Fornece a classe base para tipos que definem uma lista de itens usados para criar um painel de marca inteligente.

DesignSurface

Apresenta uma interface de usuário para a criação de componentes.

IDesigner

Fornece a estrutura básica para a criação de um designer personalizado.

IRootDesigner

Fornece suporte para tecnologias de exibição de designer de nível de raiz.

IExtenderProviderService

Fornece uma interface para adicionar e remover provedores extensor em tempo de design.

UndoEngine

Especifica a funcionalidade de desfazer/refazer genérico.

System.Windows.Forms.design

Tipo

Descrição

IWindowsFormsEditorService

Fornece uma interface para editores de tipo de interface do usuário para exibir Windows Forms ou para exibir um controle em um menu suspenso de área de um PropertyGrid o controle no modo de design.

ControlDesigner

Classe designer para estender o comportamento de modo de design de base um Control.

DocumentDesigner

Designer classe base para estender o comportamento de modo de design do e fornecendo um modo de exibição do modo de design de nível de raiz, um Control que ofereça suporte a controles aninhados e recebe mensagens de rolagem.

System.Windows.Forms.design.Behavior

Tipo

Descrição

BehaviorService

Gerencia a interface do usuário no designer.

Behavior

Representa o Behavior os objetos que são gerenciados por um BehaviorService.

Adorner

Gerencia uma coleção de interface do usuário relacionada Glyph objetos. Esta classe não pode ser herdada.

Glyph

Representa uma entidade de interface (UI) do usuário único gerenciada por um Adorner.

Serviços de tempo de design

A.NET Framework fornece um conjunto de serviços de tempo de design que podem estender os recursos de um designer. Esses serviços podem ser obtidos com o GetService o método de um componente situado no modo de design. Você pode adicionar seus próprios tipos de serviço que podem ser acessados de dentro de um projeto de modo de design usando o AddService método da IDesignerHost interface de serviço.

O IComponentChangeService interface permite que um designer receber notificações de quando os componentes são alterados, adicionados ou removidos do ambiente de tempo de design.

O IDesignerEventService interface permite que um designer receber notificações quando os designers são adicionados ou removidos do ambiente de tempo de design e notificações, quando a seleção atual do componente é alterado.

O IDesignerFilter interface permite que um designer adicionar a e filtrar o conjunto de propriedades exibidas em um navegador de propriedade para seu componente.

O IDesignerHost interface fornece uma interface para adicionar e recuperar os serviços, manipulação de eventos relacionados ao estado de designer, detectar se um designer é atualmente carregar e gerenciar componentes ou as transações de designer. Transações de Designer permitem que as seqüências de ações ocorram em um modo que impede que o modo de exibição de tempo de design atualizar sua exibição até a conclusão de uma seqüência de ações para melhorar o desempenho e fornece um mecanismo para habilitar as ações do componente de uma transação a serem desfeitas e o estado anterior restaurado.

O IDesignerOptionService interface permite que um designer obter e definir os valores das propriedades listadas na grade de propriedades de Windows Forms Designer acessível a partir do Opções item de menu, localizado no Ferramentas menu no ambiente de Visual Studio. O DesignerOptionService classe estende a flexibilidade de consultar para obter opções.

O IDictionaryService interface permite que um designer usar uma coleção com chave de dados definidos pelo usuário e pares de chaves que podem ser acessados por chave ou valor.

O IEventBindingService interface permite que um designer para expor eventos para um componente em um navegador de propriedade em tempo de design enquanto o componente for selecionado.

O IExtenderListService interface permite que um designer obter os provedores extender atualmente ativos no ambiente de tempo de design. O IExtenderProviderService interface permite que um designer adicionar ou remover provedores extensor em tempo de design.

O IHelpService interface permite que um designer criar e remover os contextos de serviço de Ajuda, criar e remover atributos de contexto da Ajuda e exibir os tópicos da Ajuda por palavra-chave ou URL.

O IInheritanceService interface permite que um designer procurar componentes de classes derivadas e identificar quaisquer atributos de herança de cada um.

O IMenuCommandService interface permite que um designer procurar, adicionar, remover ou chamar comandos de menu no ambiente de tempo de design.

O IReferenceService interface permite que um designer obter o nome de um objeto por referência, uma referência a um objeto pelo nome, uma referência para o pai de um componente especificado, ou referências a objetos de um tipo especificado no projeto atual de modo de design.

O IResourceService interface permite que um designer obter recursos leitor ou gravador de recurso para um CultureInfo.

O IRootDesigner interface permite que um designer substituir o modo de exibição designer raiz com uma exibição do designer de modo de exibição personalizado. O IRootDesigner interface deve ser implementada pelo designer de um componente.

O ISelectionService interface permite que um designer obter um conjunto de referências para os componentes selecionados, defina a seleção a um componente ou conjunto de componentes e para determinar se qualquer componente está selecionado.

O IServiceContainer interface permite que um designer adicionar ou remover os serviços que podem ser usados por outros componentes ou designers.

O ITypeDescriptorFilterService interface permite que um componente ou o designer para filtrar os atributos, eventos e propriedades expostas por qualquer componente em tempo de design. O ITypeDescriptorFilterService interface deve ser implementada por uma classe que pode ser adicionada como um serviço usando o AddService método da Site de um componente sited no modo de design.

O ITypeResolutionService interface permite que um designer adicionar uma referência a um assembly ao projeto, obter um tipo ou assembly por nome e obter o caminho de um assembly especificado.

O DesignerActionService e DesignerActionUIService classes implementam o recurso de marca inteligente para designers personalizados. Para obter mais informações, consulte Comandos de designer e o modelo de objeto DesignerAction para Windows Forms.

O BehaviorService gerencia a interface do usuário em um designer. Ele fornece uma maneira uniforme para manipular elementos de interface do usuário, como eventos relacionados ao mouse, comandos de menu e operações de arrastar-e-soltar OLE em tempo de design. Para obter mais informações, consulte Visão geral do serviço de comportamento.

O CodeDomComponentSerializationService classe serializa um conjunto de componentes ou serializable objetos em um armazenamento de serialização. Para obter mais informações, consulte Visão geral da serialização de designer.

Consulte também

Tarefas

Como implementar um conversor de tipos

Como implementar um editor de tipos da interface do usuário

Como acessar serviços em tempo de design

Como acessar o suporte para tempo de design no Windows Forms

Conceitos

Atributos e suporte para tempo de design

Comandos de designer e o modelo de objeto DesignerAction para Windows Forms

Visão geral do serviço de comportamento

Visão geral da serialização de designer

Outros recursos

Estendendo o suporte para tempo de design

Designers personalizados