TextPatternRange.ExpandToEnclosingUnit(TextUnit) Método

Definição

Expande o intervalo de texto para o TextUnit especificado.

public:
 void ExpandToEnclosingUnit(System::Windows::Automation::Text::TextUnit unit);
public void ExpandToEnclosingUnit (System.Windows.Automation.Text.TextUnit unit);
member this.ExpandToEnclosingUnit : System.Windows.Automation.Text.TextUnit -> unit
Public Sub ExpandToEnclosingUnit (unit As TextUnit)

Parâmetros

unit
TextUnit

A unidade textual.

Exemplos

 private void ExpandSelection(AutomationElement target)
{
    // Specify the control type we're looking for, in this case 'Document'
    PropertyCondition cond = new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Document);

    // target --> The root AutomationElement.
    AutomationElement textProvider = target.FindFirst(TreeScope.Descendants, cond);

    TextPattern textpatternPattern = textProvider.GetCurrentPattern(TextPattern.Pattern) as TextPattern;

    if (textpatternPattern == null)
    {
        Console.WriteLine("Root element does not contain a descendant that supports TextPattern.");
        return;
    }
    TextPatternRange[] currentSelection = textpatternPattern.GetSelection();
    // Expand selection to include entire document
    currentSelection[0].ExpandToEnclosingUnit(TextUnit.Document);
}
Private Sub ExpandSelection(ByVal target As AutomationElement)
    ' Specify the control type we're looking for, in this case 'Document'
    Dim cond As PropertyCondition = New PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Document)

    ' target --> The root AutomationElement.
    Dim textProvider As AutomationElement = target.FindFirst(TreeScope.Descendants, cond)

    Dim textpatternPattern As TextPattern = CType(textProvider.GetCurrentPattern(TextPattern.Pattern), TextPattern)

    If (textpatternPattern Is Nothing) Then
        Console.WriteLine("Root element does not contain a descendant that supports TextPattern.")
        Return
    End If
    Dim currentSelection As TextPatternRange() = textpatternPattern.GetSelection()
    currentSelection(0).ExpandToEnclosingUnit(TextUnit.Document)
End Sub

Comentários

Se o intervalo já for uma quantidade exata das unidades especificadas, ele permanecerá inalterado.

Para que o ExpandToEnclosingUnit método seja executado com êxito, uma sequência de ações é executada nos bastidores.

  1. O intervalo de texto é normalizado; ou seja, o intervalo de texto é recolhido para um intervalo degenerado no Start ponto de extremidade, tornando o End ponto de extremidade supérfluo. Esta etapa é necessária para remover a ambiguidade em situações em que um intervalo de texto abrange unit limites; por exemplo, "{A U}RL https://www.microsoft.com/ está inserida no texto" em que "{" e "}" são os pontos de extremidade do intervalo de texto.

  2. O intervalo resultante é movido para trás no DocumentRange para o início do limite unit solicitado.

  3. O intervalo é movido para frente ou para trás no DocumentRange o número solicitado de limites unit.

  4. Em seguida, o intervalo é expandido de um estado de intervalo degenerado movendo o ponto de extremidade End um limite unit solicitado.

Ajustes de intervalo por Move & ExpandToEnclosingUnit
Exemplos de como um intervalo de texto é ajustado para Move() e ExpandToEnclosingUnit()

Observação

Essas etapas são necessárias, pois é comum que um leitor de tela leia uma palavra completa, uma frase ou um parágrafo inteiro no ponto de inserção ou em qualquer posição de cursor virtual.

ExpandToEnclosingUnit respeita o texto oculto e visível. O cliente Automação da Interface do Usuário pode marcar o para visibilidade do IsHiddenAttribute texto.

ExpandToEnclosingUnit adiará para o próximo maior TextUnit com suporte se o determinado TextUnit não tiver suporte do controle .

A ordem, da menor unidade para a maior, está listada abaixo.

Aplica-se a

Confira também