Visão geral de TextPattern e Objetos Embutidos
Este através de Exibir descreve como Expõe incorporado objetos, ou elementos filho, dentro de um documento de texto ou Contêiner.
Em Um objeto incorporado é qualquer elemento que tenha limites não textual; Por exemplo, uma imagem, hiperlink, tabela, ou tipo de documento, como um Planilha ou Arquivo.Isso é diferente da definição padrão, na qual um elemento é criado em um aplicativo e embutido, ou vinculado, dentro de outro.Se o objeto pode ser editado em seu aplicativo original é irrelevante no contexto de .
Este tópico contém as seguintes seções.
- Objetos embutidos e a Árvore de Automação de Interface do Usuário
- Expor objetos embutidos usando TextPattern e TextPatternRange
- Cenários Comuns
- Tópicos relacionados
Objetos embutidos e a Árvore de Automação de Interface do Usuário
Objetos incorporados são tratados como elementos individuais dentro de Modo de controle do Árvore.Elas são expostas como filhos do recipiente de texto para que eles podem ser acessados através do mesmo modelo como outros controles em de .
Exemplo de um recipiente de texto com objetos embutidos tabela, imagem e hiperlink
Exemplo do modo de exibição de conteúdo para uma parte do contêiner de texto precedente
Expor objetos embutidos usando TextPattern e TextPatternRange
Usado em conjunto, o TextPattern controle padrão Classe e a TextPatternRange classe expõe métodos e propriedades que facilitam a navegação e consulta de objetos incorporados.
O conteúdo textual (ou texto interno) de um recipiente de texto e um objeto incorporado, como um hiperlink ou Célula de Tabela, é exposta como um fluxo de texto único, contínuo no tanto a exibição de controle e o Exibir de conteúdo das Árvore; Objeto limites são ignorados.Se um Cliente de Automação interface do usuário está recuperando o texto com a finalidade de citando, interpretar, ou analisar de alguma maneira, o intervalo de texto deve ser marcado para Especial casos, como uma tabela com textuais conteúdo ou outros objetos incorporados.Isso pode ser feito chamando GetChildren() Para obter um AutomationElement Para cada objeto e, em seguida, chamar incorporado RangeFromfilho(AutomationElement) Para obter um intervalo de texto para cada elemento.Isso é feito de forma recursiva até que todo o conteúdo textual tenha sido recuperado.
Exemplo de um fluxo de texto com objetos embutidos e seus intervalos abrangentes
Quando for necessário desviar o conteúdo de um intervalo de texto, uma série de etapas envolvidas em segundo plano na ordem para o Mover(TextUnit, Int32) Método para executar com êxito.
O intervalo de texto é normalizado; Ou seja, o intervalo de texto é recolhido para um intervalo em degenerate o Start Ponto de extremidade, o que torna o End Ponto de Extremidade supérfluas.Essa etapa é necessária remover ambigüidade em situações onde abrange um intervalo de texto TextoUnit Limites: por exemplo, " {O U} RL https://www.microsoft.com (em inglês) está incorporado em texto " onde "{" e "} " o texto é intervalo pontos de extremidade.
O intervalo resultante é movido Recuar in a [P:System.Windows.Automation.TextPadrão.DocumentRange] Para o início do solicitado. TextoUnit Limite.
O intervalo é movido Avançar ou para trás o [P:System.Windows.Automation.TextPadrão.DocumentRange] pelo número de solicitada. TextoUnit Os limites.
O intervalo estiver Expandida, em seguida, a partir de um intervalo degenerate estado movendo o End Ponto de Extremidade por um solicitada TextoUnit Limite.
Exemplos de como um intervalo de texto é ajustado para Move() e ExpandToEnclosingUnit()
Cenários Comuns
As seções a seguir apresentam exemplos dos cenários mais comuns que envolvem objetos embutidos.
Legenda para os exemplos mostrados:
{ = Start
} = End
Hiperlink
Exemplo 1 - um intervalo de texto que contém um hiperlink de texto embutido
{A URL https://www.microsoft.com (em inglês) é incorporado em texto}.
O método chamado |
Resultado |
---|---|
Retorna a seqüência de caracteres "A URL https://www.microsoft.com é embutida no texto". |
|
Retorna o interno AutomationElement que inclui o intervalo de texto; Nesse maiúscminúsc, o AutomationElement que representa o texto provedor próprio. |
|
GetChildren() |
Retorna um AutomationElement que representa o controle de hiperlink. |
RangeFromfilho(AutomationElement) Onde AutomationElement é o objeto retornado por anterior GetChildren Método. |
Retorna o intervalo que representa "http://www.microsoft.com". |
Exemplo 2 - um intervalo de texto que abrange um hiperlink de texto embutido parcialmente
O {http:// URLwww}microsoft.com é incorporado em texto.
O método chamado |
Resultado |
---|---|
Retorna a seqüência de caracteres "www". |
|
Retorna o interno AutomationElement que inclui o intervalo de texto; Nesse caso, o hiperlink controlar. |
|
GetChildren() |
Retornos Nulo Desde que o intervalo de texto não abrangem toda URL a Cadeia de Caracteres. |
Exemplo 3 - um intervalo de texto que abranja parcialmente o conteúdo de um recipiente de texto. O recipiente de texto possui um texto incorporado hiperlink que não é parte do intervalo de texto.
{O URL} https://www.microsoft.com (em inglês) é incorporado em texto.
O método chamado |
Resultado |
---|---|
Retorna a seqüência de caracteres "A URL". |
|
Retorna o interno AutomationElement que inclui o intervalo de texto; Nesse maiúscminúsc, o AutomationElement que representa o texto provedor próprio. |
|
Mover(TextUnit, Int32) com parâmetros de (TextUnit.Word, 1). |
Move o intervalo de texto para "http" já que o texto do hiperlink é composto de palavras individuais.Nesse caso, o hiperlink não é tratado como um único objeto. O {URLhttp}//www.microsoft.com é incorporado em texto. |
Image
Exemplo 1 - um intervalo de texto que contenha uma imagem embutida
{A imagem é incorporado em texto}.
O método chamado |
Resultado |
---|---|
Retorna a seqüência de caracteres " A é embutida em texto".Não se pode esperar que qualquer texto alternativo associado à imagem seja incluído no fluxo de texto. |
|
Retorna o interno AutomationElement que inclui o intervalo de texto; Nesse maiúscminúsc, o AutomationElement que representa o texto provedor próprio. |
|
GetChildren() |
Retorna um AutomationElement que representa o controle de imagem. |
RangeFromfilho(AutomationElement) Onde AutomationElement é o objeto retornado por anterior GetChildren() Método. |
Retorna o intervalo degenerate representando "". |
Exemplo 2 - um intervalo de texto que abranja parcialmente o conteúdo de um recipiente de texto. O recipiente de texto tem uma imagem incorporada que não seja parte do intervalo de texto.
{A imagem} é incorporado em texto.
O método chamado |
Resultado |
---|---|
Retorna a seqüência de caracteres "A imagem". |
|
Retorna o interno AutomationElement que inclui o intervalo de texto; Nesse maiúscminúsc, o AutomationElement que representa o texto provedor próprio. |
|
Mover(TextUnit, Int32) com parâmetros de (TextUnit.Word, 1). |
Move o intervalo intervalo de texto para "é ".Já que somente objetos embutidos com base em texto são considerados partes do fluxo de texto, a imagem neste exemplo não afeta Move ou seu valor de retorno (1 neste caso). |
Tabela
A tabela usada para exemplos
Célula com imagem |
Célula com texto |
---|---|
X |
|
Y |
|
Imagem para Z |
Z |
Exemplo 1 - obter o Recipiente de texto do conteúdo de uma célula.
O método chamado |
Resultado |
---|---|
GetItem Com os parâmetros (0,0) |
Retorna o AutomationElement que representa o conteúdo da célula de tabela; Nesse caso, o elemento é um controle de texto. |
RangeFromfilho(AutomationElement) Onde AutomationElement é o objeto retornado por anterior GetItem Método. |
Retorna o intervalo que abrange a imagem . |
GetEnclosingElement Para o objeto retornado por anterior. RangeFromChild Método. |
Retorna o AutomationElement que representa a célula da tabela; Nesse caso, o elemento é um controle que ofereça suporte ao TableItemPattern de texto. |
GetEnclosingElement Para o objeto retornado por anterior. GetEnclosingElement Método. |
Retorna o AutomationElement que representa a tabela. |
GetEnclosingElement Para o objeto retornado por anterior. GetEnclosingElement Método. |
Retorna o AutomationElement que representa o texto provedor próprio. |
Exemplo 2 - obter o conteúdo de texto de uma célula.
O método chamado |
Resultado |
---|---|
GetItem com parâmetros de (1,1). |
Retorna o AutomationElement que representa o conteúdo da célula de tabela; Nesse caso, o elemento é um controle de texto. |
RangeFromfilho(AutomationElement) Onde AutomationElement é o objeto retornado por anterior GetItem Método. |
Retorna "Y". |
Consulte também
Tarefas
Access Embedded Objects Using UI Automation
Expose the Content of a Table Using UI Automation
Percorrer texto usando automação de interface do usuário
TextPattern Search and Selection Sample
Referência
ITextProvedor