Share via


UI Automation TextPattern Overview

Este através de Exibir descreve como usar para expor o conteúdo textual, incluindo atributos, dos controles de texto no Formatarar e estilo Há suporte para Plataformas.Esses controles incluem, mas não estão limitados a, o TextBox e RichTextBox bem como seus Win32 equivalentes.

Expor o conteúdo textual de um Controlarar é feito através do uso da TextPattern controle padrãoque representa o conteúdo de um Contêiner de texto como um fluxo de texto.Por sua vez, TextPattern requer o suporte a TextPatternRange Classe para expor o formato e estilo atributos.TextPatternRange Oferece suporte TextPattern Por que representam contíguo ou múltiplo, desconecte abrange de texto em um recipiente de texto com uma coleção de Start e End pontos de extremidade.TextPatternRange suporta funcionalidade como seleção, comparação, recuperação e passagem.

Observação:

O TextPattern Classes não fornecem um meio para inserir ou modificar o texto.No entanto, de Pendente no controle, isso pode ser conseguido a ValuePattern ou Através direcionar a entrada do teclado.Consulte a Exemplo de texto Inserir ValuePattern Para obter um exemplo.

A funcionalidade descrita neste resumo é vital para vendedores de tecnologia de apoio e seus usuários finais.Podem usar tecnologias auxiliares Para reunir Concluir texto informações para o usuário formatação e fornecer através de programação de navegação e seleção de texto por TextoUnit (caractere, palavra, linha ou parágrafo).

Este tópico contém as seguintes seções.

Interface do usuário TextPattern de automação vs. Framework de serviços de texto

é uma estrutura simples e escalonável do sistema que permite natural Idioma a entrada de texto avançados na área de trabalho e em aplicativos e serviços.Além de fornecer interfaces para que aplicativos exponham seu armazenamento de texto, ele também suporta metadados para esse armazenamento de texto.

No entanto, Foi desenvolvido para aplicativos que precisam para inserir a entrada em contexto-aware cenários enquanto TextPattern Uma solução somente leitura (com a solução limitada indicada acima) serve para fornecer Acessar otimizado para um armazenamento de texto para tela-Readers e Braille dispositivos.

Em Abreviado, acessíveis tecnologias que exigem Leitura Apenas acesso a um armazenamento de texto pode usar TextPatternmas será necessário a funcionalidade mais complexa do Para entrada contexto-aware.

Tipos de controle

Texto

O controle Text é o elemento básico que representa um trecho de texto na tela.

Um controle de texto autônomo pode ser usado como um rótulo ou texto estático em um formulário.Controles de texto também podem estar contidos na estrutura de um ListItem(), TreeItem() ou DataItem().

Observação:

Controles de texto talvez não Aparecer na exibição do conteúdo de (Consulte árvore Visão geral da árvore de automação de interface do usuário).Isso ocorre porque controles de texto são geralmente exibidos através da propriedade Name de outro controle.Por exemplo, o texto que é usado para rotular um controle Edit é exposto através da propriedade Name do controle Edit.Porque o controle editar está na exibição do conteúdo de árvore, ele não é necessário para o elemento se de estar no modo de exibição de texto a árvore.O único texto que aparece no modo de exibição de conteúdo é o texto que não contém informações redundantes.Isso permite que qualquer tecnologia de apoio filtre, rapidamente, somente as informações de que os usuários precisam.

Editar

Controles Edit permitem que um usuário exiba e edite uma única linha de texto.

Observação:

A linha de texto pode ser quebrada em determinadas situações de layout.

Document

Controles Document permitem que um usuário navegue e obtenha informações de várias páginas de texto.

APIs para clientes TextPattern

Classe System.Windows.Automation.TextPattern

O ponto de entrada para a modelo de texto.

Essa classe também contém os dois TextPattern escuta de evento, TextSelectionChangedEvent e TextChangedEvent.

Classe System.Windows.Automation.Texto.TextoPatternRange

A representação de um intervalo de texto em um recipiente que ofereça suporte ao texto TextPattern.

Clientes de automação interface do usuário Cuidado sobre a validade atual de um intervalo de texto criado usando TextPatternRange.Se o texto original no controle de texto for completamente substituído por novo texto, o intervalo de texto atual passará a ser inválido.No entanto, o intervalo de texto ainda pode ter alguma viabilidade se apenas parte do texto original for alterado e o controle de texto subjacente estiver gerenciando seu "ponteiro" de texto com âncoras (ou pontos de extremidade) em vez de com posicionamento absoluto de caracteres.

Os clientes podem escutar um TextChangedEvent para notificação de quaisquer alterações feitas no conteúdo textual eles estão trabalhando com.

Classe System.Windows.Automation.AutomationTextAtributo

Usado para identificar os atributos de formatação de um intervalo de texto.

APIs do provedor de TextPattern

Interface do usuário elementos ou controles que suportam TextPattern Implementando o ITextProvedor e ITextRangeProvider Interfaces, ou originalmente ou através de proxies, são capazes de expor informações atributo Detalhado para qualquer texto eles contêm, bem como fornecer recursos de navegação robustos.

A TextPattern o provedor não tem que oferecer suporte Tudo atributos de texto se o controle não tem suporte para qualquer atributo específico.

A TextPattern o provedor deve oferecer suporte a GetSelection e Select As funções se o controle suportar a seleção de texto ou o posicionamento do cursor de texto (ou sinal de intercalação) dentro da área de texto.Se o controle não tiver suporte para essa funcionalidade, então não é necessário que ele ofereça suporte a nenhum desses métodos.No entanto, o controle deve expor o tipo de seleção de texto oferece suporte, Implementando o SupportedTextSelection Propriedade.

A TextPattern Provedor deve sempre dá suporte a TextoUnit Constantes Character e Document bem como qualquer outro. TextoUnit Constantes ele é capaz de dar suporte.

Observação:

O provedor pode ignorar o suporte para um determinado TextoUnit Por deferring para o Avançar maior TextoUnit Suporte para na seguinte ordem: Character, Format, Word, Line, Paragraph, Pagee Document.

Interface ITextProvider

Expõe métodos, propriedades e atributos que oferecem suporte TextPattern Em aplicativos do cliente (consulte. ITextProvedor).

Interface ITextRangeProvider

Representa um intervalo de texto em um provedor de texto (consulte ITextRangeProvider).

Classe System.Windows.Automation.TextPatternIdentifiers

Contém valores que são usadas como identificadores para provedores de texto (consulte TextPatternIdentifiers).

Segurança

O arquitetura foi projetada com segurança em mente (consulte Visão geral de segurança da automação de interface do usuário).No entanto, as classes TextPattern descritas neste resumo exigem algumas considerações de segurança específicas.

  • Provedores de texto fornecem interfaces somente leitura e não fornecem a capacidade para alterar o texto existente em um controle.

  • Clientes de automação interface do usuário só pode usar Se eles forem totalmente "confiável".Um exemplo disso seria o Logon Desktop protegido, onde somente aplicativos conhecidos e confiáveis podem ser executados.

  • Os desenvolvedores Interface do usuário de automação do provedors devem estar cientes que todas as informações que eles optar expor nos seus controles através é essencialmente Público e totalmente acessível por outro código. Torna Não esforço para determinar a confiabilidade de qualquer Cliente de Automação interface do usuário e, portanto, o Interface do usuário de automação do provedor não deve expor protegidas de conteúdo ou confidenciais textuais informações (como campos de senha).

  • Uma das alterações mais significativas de segurança para é amplamente conhecido como “ seguro de entrada ” que abrange as tecnologias como menor-privilegiada (ou Limitado) contas de usuário (LUA) e isolamento Nível de privilégio interface do usuário (UIPI).

    • UIPI impede que um programa controle e/ou monitore outro programa mais “privilegiado”, evitando ataques de mensagem de janela entre processos que falsifiquem a entrada do usuário.

    • LUA estabelece limites para os privilégios dos aplicativos sendo executados por usuários no grupo Administradores.Aplicativos não necessariamente têm privilégios de administrador, mas em vez disso, serão executados com os privilégios mínimos necessários.Consequentemente, pode haver algumas restrições impostas em situações LUA.Especialmente truncamento de strings (incluindo strings TextPattern), onde pode ser necessário limitar o tamanho das seqüências de caracteres que estiverem sendo recuperadas a partir de aplicativos de nível de administrador, de modo que eles não sejam forçados a alocar memória a ponto de desabilitar o aplicativo.

Desempenho

Como TextPattern se baseia em chamadas entre processos para a maioria de sua funcionalidade, ele não fornece um mecanismo de armazenamento em cache para melhorar o desempenho ao processar o conteúdo.Isso é diferente outro controle padrãos em que podem ser acessados usando o GetCachedPattern(AutomationPattern) ou TryGetCachedPattern(AutomationPattern, Objeto%) Métodos.

Uma tática para melhorar o desempenho é, certificando-se Cliente de Automação interface do usuários Tentar recuperar moderately-tamanho blocos de texto usando GetText.Por exemplo, chamadas GetText(1) provocam acertos inter-processo para cada caractere enquanto que uma chamada GetText(-1) provoca um acerto inter-processo, mas pode ter alta latência dependendo do tamanho do provedor de texto.

Terminologia TextPattern

  • Atributo
    Uma característica de formatação de um intervalo de texto (por exemplo, IsItalicAttribute ou FontNameAttribute).

  • Intervalo degenerado
    Um intervalo degenerado é um intervalo de texto vazio ou com zero caracteres.Para fins do padrão de controle TextPattern, o ponto de inserção de texto (ou sinal de intercalação) é considerado um intervalo degenerado.Se Sem Texto estiver selecionado, GetSelection retornaria um intervalo degenerate no ponto de inserção o texto e RangeFromPoint retornaria um intervalo degenerate como seu ponto de extremidade inicial.RangeFromfilho(AutomationElement) e GetVisibleRanges pode retornar intervalos degenerate quando o provedor de texto não pode localizar todos os intervalos de texto que correspondem a determinada condição.Esse intervalo degenerate pode ser usado como um ponto de extremidade inicial no provedor de texto.[M:System.Windows.Automation.Text.TextPatternRange.FindText(System.Cadeia de Caracteres,System.Booleano,System.Booleano)] e FindAttribute retornar uma referência nula (Nada Em para evitar confusão com um intervalo descoberto versus um intervalo degenerate.

  • Objeto incorporado
    T aqui são dois tipos de objetos incorporados na modelo de texto.Elas consistem de elementos de conteúdo baseado em texto, como hiperlinks ou tabelas, e elementos de controle, como imagens e botões.Para informações mais Detalhado, consulte Access Embedded Objects Using UI Automation.

  • Ponto final
    O absoluto Start ou End Ponto de um intervalo de texto em um recipiente de texto.

Veja, a seguir, uma ilustração de um conjunto de pontos de início e de fim.

  • TextRange
    Uma representação de um intervalo de texto, com pontos de início e de fim, em um recipiente de texto incluindo todos os atributos e funcionalidades associados.

  • TextoUnit
    Uma unidade predefinida de texto (caractere, palavra, linha ou parágrafo) usado para navegar pelos segmentos lógicos de um intervalo de texto.

Consulte também

Tarefas

Use Caching in UI Automation

Support Control Patterns in a UI Automation Provider

Conceitos

Padrões de Controle para Clientes de Automação de IU

Visão Geral de Padrões de Controle de Automação de Interface de Usuário

Visão geral da árvore de automação de interface do usuário

Mapeamento de Padrão de Controles para Clientes de Automação de IU

Outros recursos

Framework de serviços de texto