Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

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

Comandos de Designer e o modelo de objeto DesignerAction fornecem uma maneira generalizada para você especificar um conjunto de ações para um componente em tempo de design. Os usuários, em seguida, acessar essas ações da superfície de design, geralmente clicando no glifo de marcas inteligentes de um componente (Glifo de marca inteligente) e selecionando uma das ações oferecidas no painel de marcas inteligentes. Esse modelo unifica as várias maneiras de que um designer pode oferecer comandos para os usuários.

O recurso de marcas inteligentes permite que componentes e controles para exibir informações contextuais e comandos para os usuários. A marca inteligente pode ser considerada como uma substituição para designer verbos, porque você pode escolher exibir um item de marca inteligente no painel de marcas inteligentes e também no menu de atalho associado a um componente ou controle.

Para obter um exemplo completo de como você pode implementar as marcas inteligentes, consulte Como anexar marcas inteligentes a um componente do Windows Forms.

A tabela a seguir descreve as maneiras de designer comandos estão expostos a você quando você estiver desenvolvendo componentes e controles.

CLASS

Descrição

MenuCommand

Um representante anexado a uma ID de comando. Ele não define o texto de comando, sua colocação ou outros metadados.

DesignerVerb

Um comando de menu também define seu texto e outros metadados. Verbos geralmente são oferecidos em uma base por designer e são específicos para o designer. Verbos do Designer geralmente são mostrados em um menu de atalho ou do Exibir menu da barra de menu principal.

DesignerActionItem

Um comando de menu que define o texto e outros metadados para descrever uma ação de destino que pode ser executada. Ações normalmente orientam o usuário através de algum processo em várias etapas, como, por exemplo, configurar uma fonte de dados para um componente.

A tabela a seguir mostra os dois modelos para programaticamente acessar comandos designer.

Modelo

Descrição

Envio

Especificamente, um designer solicita um serviço e adiciona comandos ao serviço.

Recepção

Um designer é consultado por um serviço para comandos que ele oferece.

Há muito em comum entre os tipos de comandos listados na tabela anterior das classes de designer de comando. A API DesignerAction traz esses juntos para apresentar um modelo uniforme para expor comandos para os usuários de um designer.

Observação Observação

Nem todos os designers suportam todos os modelos. Um designer pode consultar os tipos de suporte são oferecidos e, em resposta podem ser alterados como ele oferece comandos. Além disso, os modelos de envio e recebimento podem não ser suportados para todos os tipos de comandos. Nem todos os designers irá expor designer ações como marcas inteligentes. Por exemplo, alguns designers podem expor designer ações em uma janela de ferramenta.

A tabela a seguir descreve as classes que implementam o modelo de objeto DesignerAction importantes.

CLASS

Descrição

DesignerActionItem

Representa um item do painel em um painel de marcas inteligentes.

DesignerActionList

Define uma lista de itens usados para criar um painel de marcas inteligentes.

DesignerActionService

Estabelece um serviço de tempo de design que gerencia a coleção de DesignerActionItem objetos para componentes.

DesignerActionTextItem

Representa um item de texto estático em um painel. Deriva de DesignerActionItem.

DesignerActionPropertyItem

Representa um item do painel que está associado uma propriedade em uma classe derivada de DesignerActionList. Deriva de DesignerActionItem.

DesignerActionMethodItem

Representa um item do painel que está associado um método em uma classe derivada de DesignerActionList. Deriva de DesignerActionItem.

DesignerActionHeaderItem

Representa um item de cabeçalho estático em um painel de marcas inteligentes. Deriva de DesignerActionTextItem.

Para habilitar as ações de designer para seu componente ou controle, derivam de DesignerActionList classe base. Use esta classe derivada para preencher um painel de marcas inteligentes, que representa a interface do usuário do menu semelhante.

Sua classe derivada pode substituir o virtualGetSortedActionItems método para retornar uma coleção de objetos derivados de DesignerActionItem. Esses objetos representam os itens do painel. Cada item é exibido no painel de acordo com a seu tipo. Por exemplo, um DesignerActionTextItem é exibido como um rótulo de texto estático. Itens do painel ativo, representados pela DesignerActionPropertyItem e DesignerActionMethodItem tipos, têm uma propriedade correspondente de acessível publicamente ou método, respectivamente, que implementa a funcionalidade para aquele item.

Depois que sua classe derivada é criado, você pode adicioná-lo a um controle de duas maneiras:

  • Com o modelo de recepção, você pode adicionar uma instância de sua classe derivada para o ActionLists propriedade no ComponentDesigner classe. Isso fornece uma maneira de herança de classes para fornecer outras listas de ação e seus itens a serem mesclados.

  • Com o modelo de envio, você chamar Add para adicionar uma instância de sua classe derivada à coleção mantida pelo global DesignerActionService. Essas listas de ação serão mescladas com aqueles na coleção mantida pelo ComponentDesigner.

A DesignerActionPropertyItem é representado no designer ao correspondente UITypeEditor. A DesignerActionMethodItem é representado no designer por um elemento de interface do usuário ativo, como, por exemplo, um hiperlink, que chama um método fornecido pelo programador. A implementação da sua lista de ação da GetSortedActionItems método retorna as propriedades e métodos na ordem em que eles devem ser exibidos no painel de marcas inteligentes.

Para obter um exemplo completo de implementar as marcas inteligentes, consulte o tópico Como anexar marcas inteligentes a um componente do Windows Forms.

Controles e componentes com existentes DesignerVerb implementações recebem automaticamente DesignerActionList suporte. O ambiente de design consultará o designer de um componente para uma lista de ação e se nenhum estiver disponível, um é criado para verbos existentes.

Se você deseja um item aparecem no menu de atalho e uma lista de ação, você pode especificar o IncludeAsDesignerVerb sinalizar em DesignerActionMethodItem.

Quando Add é chamado, a ação lista será examinada para qualquer DesignerActionMethodItem com o IncludeAsDesignerVerb o sinalizador será definido. Se ele estiver definido, o AddVerb método será chamado para aquele item para adicioná-la à verbos do componente e, portanto, o menu de atalho.

O MenuCommand e DesignerVerb classes da.NET Framework versão 1.1 foram ligeiramente alteradas para dar suporte ao modelo de objeto DesignerAction. Ambos os tipos agora expõem uma nova propriedade chamada Properties, que é um IDictionary que armazena todas as propriedades públicas do objeto de comando. A chave do dicionário é o nome da propriedade pública. Isso permite enumeração genérica de propriedades e fornece uma base consistente do qual novas propriedades podem ser adicionadas sem modificar a definição de classe.

Além disso, o MenuCommandService classe fornece uma implementação padrão da IMenuCommandService e realiza a integração do verbo correto. Essa classe gera eventos notificando de adições e remoções aos comandos. Com essa classe, você pode criar uma interface do usuário com base nos resultados desses eventos. MenuCommandService, bem como IMenuCommandService, estão disponíveis no contêiner de serviço.

Contribuições da comunidade

Mostrar: