Entrada de Usuário e Arquitetura de apresentação
Quando estiver criando um designer, há várias questões que devem ser resolvidos with regard to entrada do usuário.Por exemplo, o controle do elemento foco, roteamento de mouse e teclado entradas, adicionando adorners e chamar comandos deve todos ter um mecanismo de tratamento entrada do usuário comuns e centralizado.Na caixa Windows Presentation Foundation (WPF) Designer for Visual Studio,a classe DesignerView fornece gerenciamento para todos esses problemas e é a classe que representa o principal superfície de design.
Adorners
Adorners são elementos visuais que aparecem apenas no modo de design e são usados para ajudar o processo de design.Por exemplo, alças de redimensionamento ao redor controles quando o controle é selecionado são um exemplo de um adorner.A classe DesignerView contém uma coleção Adorners onde adorners podem ser adicionadas e usadas no modo de design.Para obter mais informações sobre disparadores, consulte Adorner de arquitetura.
Roteamento de entrada
A classe DesignerView fornece um método padrão, centralizado para entrada do usuário de roteamento.O processo de entrada consiste as seguintes etapas generalizadas:
Entrada de evento ocorre.
Execute teste de clique.
Localize uma ligação de entrada.
Execute comando ligação.
As seções a seguir examinar essas etapas na mais detalhes.
Entrada de evento ocorre.
Quando ocorre um evento de entrada, ela é roteada para a classe DesignerView, onde teste de clique é executada.
Execute teste de clique.
Quando chega uma entrada de evento para a instância DesignerView, uma verificação de visitas de teste é executada.Visitas teste verifica elementos visuais a camada de adorno tanto a hierarquia de objetos em e retorna as informações a seguir:
O que adorner o mouse está sobre.
O que item de modelo o adorner está associado.
O visual que o mouse está sobre, se não um adorner.
O item de modelo associado com o Visual.
Localize uma ligação de entrada.
Após teste de clique, DesignerView tenta coincidir com um evento de entrada para uma ligação de entrada.O algoritmo que é usado para localizar uma ligação de entrada varia de acordo com ao estado atual do designer:
Se a ferramenta ativa no momento tem uma tarefa ativa, apenas ligações de entrada da tarefa são pesquisadas Para uma vinculação que coincide com o evento de entrada.
Para a entrada do mouse, DesignerView examina o adorner testado visitas procurando uma tarefa que possui uma ligação de entrada que coincide com o evento de entrada.Se uma captura foi colocada, o adorner usado é o adorner que foi atingido testados quando a captura foi tirada.Se nenhuma adorner foi atingido testados, DesignerView examinará as ligações de entrada das tarefas que estão contidas na ferramenta ativa.
Para entrada de teclado, DesignerView conduz as ligações de entrada das tarefas que estão contidas na ferramenta ativa.Ligações de entrada de teclado em adorners são ignoradas.
Observação: Modificador teclas para mouse entrada não serão ignoradas.Teclas modificadoras funcionam bem com a entrada do mouse.
Execute comando ligação.
Depois de obter uma ligação de entrada, a Execute método é chamado no comando na ligação. Entretanto, comandos são interfaces, portanto, o comportamento de Execute é a implementação de comando.