Språk

TextPatternRange.ExpandToEnclosingUnit(TextUnit) Metod

Definition

Expanderar textintervallet till angivet 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)

Parametrar

unit
TextUnit

Textenheten.

Exempel

 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

Kommentarer

Om intervallet redan är en exakt kvantitet av de angivna enheterna förblir det oförändrat.

För ExpandToEnclosingUnit att metoden ska kunna köras utförs en sekvens med åtgärder i bakgrunden.

  1. Textområdet normaliseras. Det innebär att textintervallet minimeras till ett degenererat intervall vid Start slutpunkten, vilket gör End slutpunkten överflödig. Det här steget är nödvändigt för att ta bort tvetydighet i situationer där ett textintervall sträcker sig över unit gränser, till exempel "{U}RL https://www.microsoft.com/ är inbäddad i text" där "{" och "}" är slutpunkterna för textintervallet.

  2. Det resulterande intervallet flyttas bakåt genom DocumentRange till början av den begärda unit gränsen.

  3. Intervallet flyttas framåt eller bakåt i DocumentRange med det begärda antalet unit gränser.

  4. Intervallet expanderas sedan från ett degenererat intervalltillstånd genom att slutpunkten End flyttas med en begärd unit gräns.

Intervalljusteringar efter Flytta och ExpanderaToEnclosingUnit-intervalljusteringar Exempel på hur ett textintervall justeras för Move() och ExpandToEnclosingUnit()

Note

De här stegen är nödvändiga eftersom det är vanligt att en skärmläsare läser upp ett helt ord, en mening eller ett helt stycke vid insättningspunkten eller någon virtuell markörposition.

ExpandToEnclosingUnit respekterar både dold och synlig text. UI Automation-klienten kan kontrollera IsHiddenAttribute för textsynlighet.

ExpandToEnclosingUnit defers till den näst största TextUnit som stöds om den angivna TextUnit inte stöds av kontrollen.

Ordningen, från den minsta enheten till den största, visas nedan.

Gäller för

Se även