Partilhar via


Visão geral do serviço de comportamento

The BehaviorService gerencia a interface do usuário em um designer. Ele oferece uma maneira uniforme para manipular elementos de interface de usuário sistema autônomo eventos relacionados ao mouse, comandos de menu e operações de do tipo arrastar e soltar OLE em time de design.

Gerenciando a interface do usuário em time de design

Um aspecto importante de uma experiência de time de design personalizada de criação é o gerenciamento de interface do usuário.Você fornece uma experiência de time de design para seu controle personalizado criando um designer personalizado.

sistema autônomo desenvolvedor de designer, você pode criar seu próprio usuário interface camadas, chamadas adornos.Em cada superfície camada você criar seu próprio Glyph tipos de operações de pintura, arrastando e Outros da interface do usuário. Cada Glyph pode ter um associado Behavior Digite. A Behavior é uma classe que tenha sobrecargas para todas as entradas, incluindo operações de do tipo arrastar e soltar OLE, comandos de menu e de movimentos do mouse do usuário. Behavior também é podem adicionar objetos independentemente de um Glyph o objeto, para que eles podem conectar ao Geral entrada do usuário para o designer todo. Todos os três recursos mencionados anteriormente são implementados com o Behavior Digite.

No .NET Framework versão 1.1, alguns eventos, sistema autônomo OnMouseDragBegin, foram expostos pela ControlDesigner classe. Nesse modelo, grande parte da lógica de designer de interface do usuário é implementado no EventHandler. Como existem várias áreas designadas em um controle que um usuário pode manipular, esse modelo necessário escrever uma quantidade significativa de lógica de suporte.

The Behavior tipo resolve essa situação. The BehaviorService consiste em duas partes. A tabela a seguir mostra as partes com descrições de cada um.

Parte

Descrição

Pilha de Behavior classes

Cada classe possui métodos relacionados a comandos de menu, operações de do tipo arrastar e soltar OLE, eventos de mouse e assim por diante.A classe na parte superior da pilha é o ativo Behaviore todos os usuário entrada é roteada para que Behavior.

Adorner e Glyph objetos

An Adorner é uma camada invisível entre a área de design e o usuário. An Adorner pode conter Glyph objetos, que são processados objetos simplificados. A Glyph pode ser testada hit pelo serviço de comportamento e, opcionalmente, ele pode expor um Behavior objeto se torna ativo Behavior para, desde que o Glyph relatórios true do seu teste de ocorrência.

Embora o Designer de Formulários do Windows o original ainda oferece suporteControlDesigner substituições de mouse e arrasta se move, essas ações são implementadas sistema autônomo Behavior objetos. A tabela a seguir mostra os elementos no designer para um controle simples que tem o conjunto normal de arrastar as alças.

Elemento de comportamento

Descrição

Seleção de adorno

Uma camada única adorno lida com a seleção de todos os UI Glyph objetos.

Glifo de corpo

Um corpo completamente transparente Glyph fica pela parte superior do controle. Seu comportamento manipula toda a interação de mouse.

Glifo de captar

De captarGlyph objetos desenhar as alças de captar para o controle. SeusBehavior objetos de controlam as operações de arrastar.

Estendendo a interface de usuário do time de design

The BehaviorService modelo permite que a nova funcionalidade ao com com facilidade em camadas em uma interface de usuário designer existente. Nova interface do usuário permanece independente de outras definido anteriormente Glyph e Behavior objetos. Por exemplo, as Rótulos inteligentes em alguns controles são acessadas por um Glyph no canto superior direita da (controle).

O marca SMART código cria seu próprio Adorner camada e adiciona Glyph objetos a essa camada. Isso mantém a marca SMART Glyph separar objetos da seleção Glyph objetos. O código necessário para adicionar um novo Adorner para o Adorners coleção é simples.

    behaviorService = (BehaviorService)serviceProvider.GetService(typeof(BehaviorService));
    designerActionAdorner = new Adorner();
    behaviorService.Adorners.Add(designerActionAdorner);
    Glyph dag = new DesignerActionGlyph(/*...*/);
    designerActionAdorner.Glyphs.Add(dag);

Glifos e comportamentos

The Glyph tipo é simples. Se você precisar de funcionalidades complexas, você adicioná-lo à sua própria classe derivada do Glyph.

Glyph objetos podem ter Behavior objetos, mas eles não são necessários. A Glyph com não Behavior objetos possui um Behavior propriedade que retorna null.

A Behavior tem um método para cada interação de usuário com suporte. Por exemplo, a base Behavior classe possui métodos para oferecer suporte a operações de do tipo arrastar e soltar como OnDragEnter e OnGiveFeedback.

A maioria dos métodos retornam um valor booliano que indica se o evento foi tratado.Eventos de arrastar tenham um valor no DragEventArgs parâmetro. Itens de menu individuais podem ser adicionados ou removidos, retornando-as do FindCommand método. The FindCommand método funciona em conjunto com o DisableAllCommands propriedade para especificar como MenuCommand objetos interagem com o comportamento.

Adorners

An Adorner pode ser exibido sistema autônomo um proxy entre a interface do usuário elementos relacionados, que consistem em Glyph objetos e o BehaviorService.

Cada Adorner pode ser ativado e desabilitado. Ativado somente Adorner objetos receberão mensagens de teste e pintura visitas das BehaviorService.

Quando um Adorner é adicionado à BehaviorServiceAdornerCollection da BehaviorService, os conjuntos de coleção a BehaviorService propriedade para que o Adorner pode retornar telefonar para o BehaviorService.

Chamando o Adorner objeto Invalidate método força seu associado BehaviorService Para atualizar o Adorner janela

Comportamentos de envio

A maneira mais fácil de adicionar Behavior objetos de pilha de comportamento está usando Glyph objetos, mas isso não é a única maneira. Glyph objetos em si podem empurrar Behavior empilham objetos no comportamento e você também pode pressionar Behavior objetos diretamente na pilha de comportamento. Considere o caso em que você deseja arrastar uma alça de captar ao redor na área de design.Em vez de você escrever uma lógica para controlar quando o usuário é arrastar, a Glyph próprio executa as seguintes ações na sequência com a pilha de comportamento.

  1. The Glyph tem um associado Behavior que responde a um gesto do mouse para baixo.

  2. Quando o botão do mouse é pressionado, a Glyph envia uma nova Behavior na pilha de comportamento. Este Behavior mouse-mover alças e eventos de mouse. Ele também pode desabilitar todos os comandos de menu para que não há nenhuma maneira para atalhos de teclado ou outros comandos para ocorrer durante a arrastar.

  3. Quando o botão do mouse é liberado, a Behavior Finaliza o gesto de movimentação e se desprenda-se fora da pilha de comportamento. Isso restaura automaticamente o anteriorBehavior.

Observação:

O BehaviorService arquitetura está ligada ao modelo de Windows Forms e, portanto, não oferece suporte a outras tecnologias de exibição, sistema autônomo Web Forms.

Consulte também

Referência

BehaviorService

Glyph

Adorner

EventHandler

Outros recursos

Estendendo suporte em tempo de design