Поделиться через


TextPatternRange.ExpandToEnclosingUnit(TextUnit) Метод

Определение

Расширяет текстовый диапазон до заданной единицы текста 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)

Параметры

unit
TextUnit

Единица текста.

Примеры

 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

Комментарии

Если диапазон уже является точным количеством указанных единиц, он остается неизменным.

Для успешного ExpandToEnclosingUnit выполнения метода последовательность действий выполняется в фоновом режиме.

  1. Диапазон текста нормализуется; То есть текстовый диапазон свернут в вырожденный диапазон в конечной Start точке, что делает конечную точку End лишней. Этот шаг необходим для устранения неоднозначности в ситуациях, когда текстовый диапазон охватывает границы unit . Например, "{U}RL https://www.microsoft.com/ внедрен в текст", где "{" и "}" являются конечными точками диапазона текста.

  2. Результирующий диапазон перемещается в DocumentRange в начало запрошенной границы unit .

  3. Диапазон перемещается вперед или назад в DocumentRange на запрошенное число границ unit .

  4. Затем диапазон расширяется из вырожденного состояния путем перемещения конечной точки End на одну запрошенную границу unit .

Корректировки диапазона путем перемещения & ExpandToEnclosingНастройки
Примеры корректировки текстового диапазона для Move() и ExpandToEnclosingUnit()

Примечание

Эти действия необходимы, так как средство чтения с экрана обычно зачитывает полное слово, предложение или весь абзац в точке вставки или любой виртуальной позиции курсора.

ExpandToEnclosingUnit учитывает как скрытый, так и видимый текст. Клиент модель автоматизации пользовательского интерфейса может проверка для видимости IsHiddenAttribute текста.

ExpandToEnclosingUnit откладывается до следующего по величине TextUnit поддерживаемого, если заданный TextUnit не поддерживается элементом управления.

Порядок от наименьшей единицы до самого большого приведен ниже.

Применяется к

См. также раздел