Condividi tramite


TextPatternRange.ExpandToEnclosingUnit(TextUnit) Metodo

Definizione

Espande l'intervallo di testo alla TextUnit specificata.

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)

Parametri

unit
TextUnit

Unità testuale.

Esempio

 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

Commenti

Se l'intervallo è già una quantità esatta delle unità specificate, rimane invariata.

Affinché il ExpandToEnclosingUnit metodo venga eseguito correttamente, viene eseguita una sequenza di azioni in background.

  1. L'intervallo di testo è normalizzato; ovvero, l'intervallo di testo viene compresso in un intervallo degenerato nell'endpoint, rendendo superfluo l'endpoint StartEnd . Questo passaggio è necessario per rimuovere l'ambiguità nelle situazioni in cui un intervallo di testo si estende unit su limiti, ad esempio "{La riga https://www.microsoft.com/ U}è incorporata nel testo" in cui "{" e "}" sono gli endpoint dell'intervallo di testo.

  2. L'intervallo risultante viene spostato indietro in DocumentRange all'inizio del limite unit richiesto.

  3. L'intervallo viene spostato avanti o indietro in DocumentRange per il numero richiesto di limiti unit .

  4. L'intervallo viene quindi espanso dallo stato di intervallo degenerato spostando l'endpoint End di un limite unit richiesto.

Regolazioni dell'intervallo per Move & ExpandToEnclosingUnit
Esempi di regolazione di un intervallo di testo per Move() ed ExpandToEnclosingUnit()

Nota

Questi passaggi sono necessari perché un'utilità per la lettura dello schermo legge una parola completa, una frase o un intero paragrafo nel punto di inserimento o in qualsiasi posizione del cursore virtuale.

ExpandToEnclosingUnit rispetta sia il testo nascosto che quello visibile. Il client Automazione interfaccia utente può verificare la visibilità del IsHiddenAttribute testo.

ExpandToEnclosingUnit rinvia al successivo più grande TextUnit supportato se il dato TextUnit non è supportato dal controllo .

L'ordine, dall'unità più piccola alla più grande, è elencato di seguito.

Si applica a

Vedi anche