Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
Esta documentação destina-se a desenvolvedores do .NET Framework que desejam usar as classes de automação da interface do usuário gerenciadas definidas no namespace System.Windows.Automation. Para obter as informações mais recentes sobre a automação da interface de utilizador, consulte API de automação do Windows: Automação da Interface de Utilizador.
Esta visão geral descreve como usar a Automação da Interface do Usuário da Microsoft para expor o conteúdo textual, incluindo atributos de formato e estilo, de controles de texto em plataformas suportadas pela Automação da Interface do Usuário. Esses controles incluem, mas não estão limitados a, o Microsoft .NET Framework TextBox e RichTextBox bem como seus equivalentes Win32.
A exposição do conteúdo textual de um controlo é realizada através do uso do padrão de controlo TextPattern, que representa o conteúdo de um contêiner de texto como um fluxo de texto. Por sua vez, TextPattern requer o apoio da classe TextPatternRange para expor atributos de formato e estilo. TextPatternRange suporta TextPattern ao representar extensões de texto contíguas ou múltiplas, separadas, num contentor de texto com uma coleção de pontos de Start e End extremidade. TextPatternRange suporta funcionalidades como seleção, comparação, recuperação e percurso.
Observação
As TextPattern classes não fornecem um meio para inserir ou modificar texto. No entanto, dependendo do controle, isso pode ser feito pela automação ValuePattern da interface do usuário ou por meio da entrada direta do teclado. Consulte o TextPattern Insert Text Sample para obter um exemplo.
A funcionalidade descrita nesta visão geral é vital para os fornecedores de tecnologia assistiva e seus usuários finais. As tecnologias assistenciais podem usar a automação da interface do usuário para reunir informações completas de formatação de texto para o usuário e fornecer navegação programática e seleção de texto por TextUnit (caractere, palavra, linha ou parágrafo).
Automação da Interface do Usuário com TextPattern vs. Framework de Serviços de Texto
O Text Services Framework (TSF) é uma estrutura de sistema simples e escalável que permite serviços de linguagem natural e entrada de texto avançada na área de trabalho e em aplicativos. Além de fornecer interfaces para os aplicativos exporem seu armazenamento de texto, ele também suporta metadados para esse armazenamento de texto.
No entanto, o TSF foi projetado para aplicativos que precisam injetar entrada em cenários contextuais, enquanto TextPattern é uma solução de leitura apenas (com a solução alternativa limitada mencionada acima) destinada a fornecer acesso otimizado a um armazenamento de texto para leitores de tela e dispositivos Braille.
Em suma, as tecnologias acessíveis que exigem acesso somente de leitura a um armazenamento de texto podem usar TextPattern, mas precisarão da funcionalidade mais complexa do TSF para entrada sensível ao contexto.
Tipos de controle
Texto
O controle Text é o elemento básico que representa um pedaço 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. Os controles de texto também podem estar contidos na estrutura de um ListItem, TreeItem ou DataItem.
Observação
Os controles de texto podem não aparecer na exibição de conteúdo da árvore de Automação da Interface do Usuário (consulte Visão geral da Árvore de Automação da Interface do Usuário). Isso ocorre porque os controles de texto geralmente são exibidos por meio da propriedade Name de outro controle. Por exemplo, o texto usado para rotular um controle Edit é exposto por meio da propriedade Name do controle Edit. Como o controle Edit está na exibição de conteúdo da árvore de Automação da Interface do Usuário, não é necessário que o elemento de texto em si esteja nessa exibição da árvore de Automação da Interface do Usuário. O único texto que aparece na exibição de conteúdo é o texto que não é informação redundante. Isso permite que qualquer tecnologia assistiva filtre rapidamente apenas as informações de que seus usuários precisam.
Editar
Os controles de edição permitem que um usuário visualize e edite uma única linha de texto.
Observação
A única linha de texto pode ser quebrada em determinados cenários de layout.
Documento
Os controles de documento permitem que um usuário navegue e obtenha informações de várias páginas de texto.
APIs do Cliente TextPattern
| Tipo | Descrição |
|---|---|
System.Windows.Automation.TextPattern classe |
O ponto de entrada para o modelo de texto do Microsoft UI Automation. Essa classe também contém os dois ouvintes de eventos TextPattern, TextSelectionChangedEvent e TextChangedEvent. |
System.Windows.Automation.Text.TextPatternRange classe |
A representação de uma extensão de texto dentro de um contentor de texto que suporta TextPattern. Os clientes de automação da interface do usuário devem ter cuidado com a validade presente de um intervalo de texto criado usando TextPatternRange. Se o texto original no controle de texto for completamente substituído por um novo texto, o intervalo de texto atual se tornará inválido. No entanto, o intervalo de texto ainda pode ter alguma viabilidade se apenas parte do texto original for alterada e o controle de texto subjacente estiver gerenciando seu "ponteiro" de texto com âncoras (ou pontos de extremidade) em vez de com o posicionamento absoluto de caracteres. Os clientes podem ouvir um TextChangedEvent para notificações de quaisquer alterações no conteúdo textual em que estão a trabalhar. |
System.Windows.Automation.AutomationTextAttribute classe |
Usado para identificar os atributos de formatação de um intervalo de texto. |
APIs do provedor TextPattern
Os elementos ou controlos da interface do utilizador que suportam TextPattern implementando as interfaces ITextProvider e ITextRangeProvider, nativamente ou por meio de proxies de Automação da Interface do Usuário da Microsoft, são capazes de expor informações detalhadas de atributos para qualquer texto que contenham, além de fornecer recursos de navegação robustos.
Um TextPattern provedor não precisa oferecer suporte a todos os atributos de texto se o controle não tiver suporte para atributos específicos.
Um TextPattern provedor deve suportar as funções GetSelection e Select se o controlo suportar a seleção de texto ou o posicionamento do cursor de texto (ou cursor do sistema) dentro da área de texto. Se o controle não oferecer suporte a essa funcionalidade, ele não precisará oferecer suporte a nenhum desses métodos. No entanto, o controle deve expor o tipo de seleção de texto que ele suporta implementando a SupportedTextSelection propriedade.
Um TextPattern provedor deve sempre suportar as TextUnitCharacter constantes e Document bem como quaisquer outras TextUnit constantes que ele é capaz de suportar.
Observação
O provedor pode ignorar o suporte para um específico TextUnit passando para o próximo maior TextUnit suportados na seguinte ordem: Character, Format, Word, Line, Paragraph, Page, e Document.
| API (Interface de Programação de Aplicações) | Descrição |
|---|---|
ITextProvider Interface |
Expõe métodos, propriedades e atributos que oferecem suporte TextPattern em aplicativos cliente (consulte ITextProvider). |
ITextRangeProvider Interface |
Representa uma extensão de texto em um provedor de texto (consulte ITextRangeProvider). |
System.Windows.Automation.TextPatternIdentifiers classe |
Contém valores que são usados como identificadores para provedores de texto (consulte TextPatternIdentifiers). |
Segurança
A arquitetura de automação da interface do usuário foi projetada com a segurança em mente (consulte Visão geral da segurança da automação da interface do usuário). No entanto, as classes TextPattern descritas nesta visão geral exigem algumas considerações de segurança específicas.
Os provedores de texto da Microsoft UI Automation fornecem interfaces somente leitura e não fornecem a capacidade de alterar o texto existente em um controle.
Os clientes de Automação da Interface do Usuário só podem usar a Automação da Interface do Usuário da Microsoft se forem totalmente "confiáveis". Um exemplo disso seria a Área de Trabalho de Logon protegida, onde apenas aplicativos conhecidos e confiáveis podem ser executados.
Os desenvolvedores de provedores de Automação da Interface do Usuário devem estar cientes de que todas as informações que escolherem expor em seus controles por meio da Automação da Interface do Usuário da Microsoft são essencialmente públicas e totalmente acessíveis por outro código. A Automação da Interface do Usuário da Microsoft não faz nenhum esforço para determinar a confiabilidade de qualquer cliente de Automação da Interface do Usuário e, portanto, o provedor de Automação da Interface do Usuário não deve expor conteúdo protegido ou informações textuais confidenciais (como campos de senha).
Uma das alterações mais significativas na segurança do Windows Vista é amplamente referida como "Entrada Segura", que engloba tecnologias como Contas de Usuário Menos Privilegiadas (ou Limitadas) (LUA) e Isolamento de Nível de Privilégio da Interface do Usuário (UIPI).
O UIPI impede que um programa controle e/ou monitore outro programa mais "privilegiado", impedindo ataques de mensagens de janela de processo cruzado que falsificam a entrada do usuário.
O LUA define limites para os privilégios dos aplicativos que estão sendo executados por usuários no grupo Administradores. Os aplicativos não terão necessariamente privilégios de administrador, mas serão executados com o mínimo de privilégios necessários. Como consequência, pode haver algumas restrições aplicadas em cenários de LUA. Em especial o truncamento de cadeia de caracteres (incluindo cadeias de caracteres TextPattern), é muitas vezes necessário limitar o tamanho das cadeias de caracteres que estão a ser recuperadas de aplicações de nível administrador para evitar que sejam forçados a alocar memória ao ponto de comprometer o funcionamento do aplicativo.
Desempenho
Como o TextPattern depende de chamadas entre processos para a maioria de suas funcionalidades, ele não fornece um mecanismo de cache para melhorar o desempenho ao processar conteúdo. Isso é diferente de outros padrões de controle na automação da interface do usuário da Microsoft que podem ser acessados usando os GetCachedPattern métodos ou TryGetCachedPattern .
Uma tática para melhorar o desempenho é garantir que os clientes de automação da interface do utilizador tentem recuperar blocos de texto de tamanho moderado usando GetText. Por exemplo, as chamadas GetText(1) resultarão em ocorrências de interações entre processos para cada caractere, enquanto uma chamada GetText(-1) resultará em uma única ocorrência de interações entre processos, mas pode sofrer alta latência dependendo do tamanho do fornecedor 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 de zero caracteres. Para os fins do padrão de controle TextPattern, o ponto de inserção de texto (ou cursor do sistema) é considerado um intervalo degenerado. Se nenhum texto for selecionado, GetSelection retornará um intervalo degenerado no ponto de inserção de texto e RangeFromPoint retornará um intervalo degenerado como seu ponto de extremidade inicial.
RangeFromChild e GetVisibleRanges pode retornar intervalos degenerados quando o provedor de texto não consegue encontrar nenhum intervalo de texto que corresponda à condição dada. Esse intervalo degenerado pode ser usado como um ponto de extremidade inicial dentro do provedor de texto.
FindText e FindAttribute retornam uma referência nula (Nothing no Microsoft Visual Basic .NET) para evitar confusão entre um intervalo descoberto e um intervalo degenerado.
Objeto incorporado
Há dois tipos de objetos incorporados no modelo de texto de Automação da Interface do Usuário. Eles consistem em elementos de conteúdo baseados em texto, como hiperlinks ou tabelas, e elementos de controle, como imagens e botões. Para obter informações mais detalhadas, consulte Acessar objetos incorporados usando a automação da interface do usuário.
Ponto final
O ponto absoluto Start ou End de uma faixa de texto dentro de um container de texto.
A seguir, apresenta-se um conjunto de pontos iniciais e finais.
Intervalo de texto
Uma representação de uma extensão de texto, com pontos de início e fim, em um contêiner de texto, incluindo todos os atributos e funcionalidades associados.
TextUnit
Uma unidade de texto predefinida (caractere, palavra, linha ou parágrafo) usada para navegar por segmentos lógicos de um intervalo de texto.
Ver também
- Padrões de Controle de Automação da Interface do Usuário para Clientes
- Visão geral dos padrões de controle de automação da interface do usuário
- Visão geral da árvore de automação da interface do usuário
- Use o armazenamento em cache na automação da interface do utilizador
- Suportar Padrões de Controle em um Provedor de Automação de Interface do Usuário
- Mapeamento de padrões de controle para clientes de automação da interface do usuário
- Estrutura de Serviços de Texto