Freigeben über


TextPatternRange.ExpandToEnclosingUnit(TextUnit) Methode

Definition

Erweitert den Textbereich auf die angegebene 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)

Parameter

unit
TextUnit

Die Texteinheit.

Beispiele

 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

Hinweise

Wenn der Bereich bereits eine exakte Menge der angegebenen Einheiten ist, bleibt er unverändert.

Damit die ExpandToEnclosingUnit Methode erfolgreich ausgeführt werden kann, wird im Hintergrund eine Abfolge von Aktionen ausgeführt.

  1. Der Textbereich wird normalisiert; Das heißt, der Textbereich wird auf einen degenerierten Bereich am Start Endpunkt reduziert, wodurch der End Endpunkt überflüssig wird. Dieser Schritt ist erforderlich, um Mehrdeutigkeiten in Situationen zu entfernen, in denen sich ein Textbereich über Grenzen erstreckt unit , z. B. "{The U}RL https://www.microsoft.com/ is embedded in text", wobei "{" und "}" die Textbereichsendpunkte sind.

  2. Der resultierende Bereich wird im DocumentRange zurück an den Anfang der angeforderten unit -Grenze verschoben.

  3. Der Bereich wird um die angeforderte Anzahl von DocumentRange -Grenzen nach vorne oder nach hinten im unit verschoben.

  4. Anschließend wird der Bereich von einem degenerierten Bereichszustand erweitert, indem der End -Endpunkt um eine angeforderte unit -Grenze verschoben wird.

Bereichsanpassungen durch Move & ExpandToEnclosingUnit
Beispiele für die Anpassung eines Textbereichs für Move() und ExpandToEnclosingUnit()

Hinweis

Diese Schritte sind erforderlich, da es üblich ist, dass eine Sprachausgabe ein vollständiges Wort, einen Satz oder einen ganzen Absatz an der Einfügemarke oder einer beliebigen virtuellen Cursorposition ausliest.

ExpandToEnclosingUnit berücksichtigt ausgeblendeten und sichtbaren Text. Der Benutzeroberflächenautomatisierung-Client kann die IsHiddenAttribute auf Textsichtbarkeit überprüfen.

ExpandToEnclosingUnit wird auf die nächstgrößer TextUnit unterstützte zurückversetzt, wenn die angegebene TextUnit vom -Steuerelement nicht unterstützt wird.

Die Reihenfolge, von der kleinsten Einheit bis zur größten, ist unten aufgeführt.

Gilt für:

Weitere Informationen