Sdílet prostřednictvím


TextPatternRange.ExpandToEnclosingUnit(TextUnit) Metoda

Definice

Rozšíří rozsah textu na zadaný TextUnit.

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)

Parametry

unit
TextUnit

Textová jednotka.

Příklady

 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

Poznámky

Pokud je rozsah již přesným množstvím zadaných jednotek, zůstane beze změny.

Aby se ExpandToEnclosingUnit metoda úspěšně spustila, provádí se na pozadí posloupnost akcí.

  1. Rozsah textu je normalizován; to znamená, že rozsah textu je sbalený do degenerovaného rozsahu v koncovém Start bodu, takže End koncový bod je nadbytečný. Tento krok je nezbytný k odstranění nejednoznačnosti v situacích, kdy rozsah textu přesahuje unit hranice, například "{Adresa U}RL https://www.microsoft.com/ je vložena do textu", kde {" a "}" jsou koncové body textového rozsahu.

  2. Výsledný rozsah se přesune dozadu DocumentRange na začátek požadované unit hranice.

  3. Rozsah se posune dopředu nebo dozadu o DocumentRange požadovaný počet unit hranic.

  4. Rozsah se pak rozbalí ze stavu degenerovaného rozsahu přesunutím koncového End bodu o jednu požadovanou unit hranici.

Úpravy rozsahu pomocí funkce Move & Úpravy Rozsah RozbalitToEnclosingUnit
Příklady úprav rozsahu textu pro Move() a ExpandToEnclosingUnit()

Poznámka

Tyto kroky jsou nezbytné, protože je běžné, že čtečka obrazovky přečte celé slovo, větu nebo celý odstavec v místě vložení nebo jakékoli virtuální pozici kurzoru.

ExpandToEnclosingUnit respektuje skrytý i viditelný text. Klient model UI Automation může zkontrolovat IsHiddenAttribute viditelnost textu.

ExpandToEnclosingUnitpokud daný TextUnit ovládací prvek nepodporuje, přejde na další největší TextUnit podporovanou hodnotu.

Pořadí od nejmenších jednotek po největší je uvedené níže.

Platí pro

Viz také