Ferramenta de Arquitetura
Os usuários interagem com um conteúdo em um designer em uma variedade de formas complexas.Por exemplo, os usuários podem interagir com a superfície de design através de cliques, arrastar, arrastar com teclas modificadoras, teclado ou menu de interação.Para poder ser extensível, um designer deve fornecer uma base para manipular todos esses tipos de interação do usuário.The Windows Presentation Foundation (WPF) Designer for Visual Studio Fornece um sistema de entrada flexível mas estruturado que é consistente e extensível. O modelo de usuário para a arquitetura da ferramenta consiste em comandos, tarefas e ferramentas.
Comandos
Um comando é um identificador exclusivo que representa algum comportamento.Um exemplo é o comando Recortar, que identifica o processo de recortar um texto ou objeto e adicioná-lo à Área de Transferência.Enquanto o código que implementa o comando pode ser diferente de aplicativo para aplicativo, ou até mesmo dentro de um aplicativo, o comando permanece constante.Todos os comandos implementam a interface ICommand.
Em adição, há duas outras coisas que você precisa fazer para um comando trabalhar o comando próprio.Primeiro, um comando requer algum tipo de entrada do usuário (chamado um gesto) que aciona o comando.Por exemplo, a combinação de teclas CTRL+X ou a seleção de um menu pode ser um gesto que aciona um comando.Em segundo lugar, um comando requer algum tipo de código de implementação que é executado quando o comando é chamado.
O WPF fornece uma implementação interna da interface ICommand chamada RoutedCommand que passa informações sobre como entrada do usuário para manipuladores de comando designado.O WPF Designer fornece outro comando tipo chamado ToolCommand,que expande a quantidade de informações sobre o estado do designer que é passado para o comando manipulador do tipo EventArgs.
Tarefas
Um Task é um objeto que representa uma tarefa atual que pode ocorrer no designer.Por exemplo, arrastando um item sobre o designer pode ser representado por um objeto Task.Um Task contém três coleções:
Uma coleção de ligações de entrada que descrevem os tipos de entrada do usuário manipulada por tarefa.Por exemplo, ligações que representam combinações de pressionamento de teclas ou movimentos do mouse.
Uma coleção de ligações de linha de comando que fornecem implementações para rota padrão de comandos WPF.
Uma coleção de ligações de ferramenta de comando que fornecem uma implementação para a ferramenta de comandos WPF Designer.
Por exemplo, o objeto Task mencionado anteriormente que representa arrastar um item sobre o designer pode conter comandos que representem mover mouse para baixo, mover mouse e do mover mouse para cima.O objeto Task também pode conter vínculos de entrada que ligam movimentos de entrada a cada um desses comandos.
Ferramentas
Um Tool é uma classe que é usada para processar a entrada do usuário.Todas as entrada de usuário entram no designer como um ou mais eventos de entrada, executando dados que representam o movimento de entrada usado e outras informações sobre o estado do designer.O evento de entrada é roteado para o objeto Tool atualmente ativo, que converte os dados de entrada para as ligações de entrada.Se for encontrada uma ligação para o movimento de entrada indicado, o comando dentro da ligação é executado.
O objeto Tool é usado para representar o modo global do designer.Por exemplo, se o usuário está selecionando os componentes na superfície de design, esse modo é ativado porque a ferramenta atual oferece tarefas que fornecem as coleções de ligações de entrada e que ligam movimentos de entrada específicos a determinados comandos que ativam às tarefas.Se o usuário estivesse criando um novo controle, a ferramenta ativa seria diferente e poderia oferecer um conjunto diferente de vinculações que poderia permitir que o usuário usasse os mesmos movimentos, mas vinculá-los a comandos diferentes.
Consulte também
Conceitos
Entrada de Usuário e Arquitetura de apresentação
Arquitetura de extensibilidade Designer WPF