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 em 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 do 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 enquadram nas seguintes categorias: designers, conversores de tipo e interface do usuário digite editores. Os atributos são aplicados a tipos e digitar os membros de associar esses provedores de suporte em tempo de design.

Atributos

Atributos de associar um tipo ou membro do tipo uma classe que estende o comportamento de tempo de design. A DesignerAttribute associa um tipo com um designer. A TypeConverterAttribute associa um tipo ou membro de tipo com um conversor de tipo. Um EditorAttribute associa um tipo ou membro de tipo com um editor de tipo de interface do usuário. Para obter mais informações sobre os atributos em de.NET Framework, consulte Atributos de tempo de design para componentes e Atributos e suporte em 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 é criado para oferecer suporte e outros tipos de dados, ele pode traduzir os valores de ou. Um conversor de tipo 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 tipo pode fornecer uma lista de valores padrão para uma propriedade do tipo que ele oferece suporte em tempo de design em um navegador de propriedade. Um conversor de tipo 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 tipo, consulte Como: Implementar um conversor de tipo.

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 propriedades de tipo que é 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 uma interface de configuração da lista suspensa para configurar uma propriedade ou um Windows Form. Para obter mais informações sobre como implementar um editor UI de tipo, consulte Como: Implementar um Editor UI de tipo.

ObservaçãoObservação

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 de 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 oferece suporte a controles aninhados e recebe mensagens de rolagem.

System.Windows.Forms.design.Behavior

Tipo

Descrição

BehaviorService

Gerencia a interface de usuário no designer.

Behavior

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

Adorner

Gerencia uma coleção de interface de 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 podem ser acessados dentro de um projeto de modo de design usando o AddService método de 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 as alterações da seleção atual do componente.

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

O IDesignerHost interface fornece uma interface para adicionar e recuperar serviços, manipulação de eventos relacionados ao estado de designer, detectar se um designer está carregando, atualmente e gerenciando componentes ou 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, fornecendo um mecanismo para habilitar as ações do componente de uma transação a ser desfeita 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 na Ferramentas menu no ambiente de Visual Studio. O DesignerOptionService classe estende a flexibilidade da consulta de opções.

O IDictionaryService interface permite que um designer de 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 os eventos de um componente em um navegador de propriedade em tempo de design enquanto o componente está selecionado.

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

O IHelpService interface permite que um designer criar e remover os contextos do 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 pesquisar, 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 por nome, uma referência para o pai de um componente especificado ou referências a objetos de um tipo especificado, o projeto da modo atual do 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 modo de exibição designer personalizado. O IRootDesigner interface deve ser implementada pelo designer para um componente.

O ISelectionService interface permite que um designer obter um conjunto de referências a componentes selecionados no momento, definir a seleção para 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 de 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 de 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, por exemplo, eventos de mouse, os 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 Designer Serialization Overview.

Consulte também

Tarefas

Como: Implementar um conversor de tipo

Como: Implementar um Editor UI de tipo

Como: Acessar os serviços de tempo de Design

Como: Suporte de tempo de Design de acesso no Windows Forms

Conceitos

Atributos e suporte em tempo de Design

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

Visão geral do serviço de comportamento

Designer Serialization Overview

Outros recursos

Estendendo suporte em tempo de design

Designers personalizados