Taal

TextPatternRange.ExpandToEnclosingUnit(TextUnit) Methode

Definitie

Hiermee wordt het tekstbereik uitgebreid naar het opgegeven 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)

Parameters

unit
TextUnit

De teksteenheid.

Voorbeelden

 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

Opmerkingen

Als het bereik al een exacte hoeveelheid van de opgegeven eenheden is, blijft het ongewijzigd.

Om de ExpandToEnclosingUnit methode succesvol uit te voeren, wordt er achter de schermen een reeks acties uitgevoerd.

  1. Het tekstbereik wordt genormaliseerd; Dat wil gezegd, wordt het tekstbereik samengevouwen tot een degenererend bereik op het Start eindpunt, waardoor het End eindpunt overbodig is. Deze stap is nodig om dubbelzinnigheid te verwijderen in situaties waarin een tekstbereik grenzen omvat unit , bijvoorbeeld {De U}RL https://www.microsoft.com/ is ingesloten in tekst, waarbij {en }de eindpunten van het tekstbereik zijn.

  2. Het resulterende bereik wordt verplaatst achterwaarts in de DocumentRange tot het begin van de aangevraagde unit grens.

  3. Het bereik wordt naar voren of naar achteren verplaatst in DocumentRange met het aangevraagde aantal unit grenzen.

  4. Het bereik wordt vervolgens uitgebreid vanuit een gedegenereerde toestand door het End eindpunt met één aangevraagde unit grens te verplaatsen.

Bereikaanpassingen door Move & ExpandToEnclosingUnit Voorbeelden van hoe een tekstbereik wordt aangepast voor Move() en ExpandToEnclosingUnit()

Note

Deze stappen zijn nodig omdat het gebruikelijk is dat een schermlezer een volledig woord, zin of hele alinea op de invoegpositie of een virtuele cursorpositie leest.

ExpandToEnclosingUnit respecteert zowel verborgen als zichtbare tekst. De UI Automation-client kan de IsHiddenAttribute controleren op tekstzichtbaarheid.

ExpandToEnclosingUnit wordt uitgesteld tot het eerstvolgende grootste TextUnit ondersteund als de opgegeven TextUnit niet wordt ondersteund door het besturingselement.

De volgorde, van kleinste eenheid tot grootste, wordt hieronder vermeld.

Van toepassing op

Zie ook