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 выполнения метода последовательность действий выполняется в фоновом режиме.
Диапазон текста нормализуется; То есть текстовый диапазон свернут в вырожденный диапазон в конечной Start точке, что делает конечную точку End лишней. Этот шаг необходим для устранения неоднозначности в ситуациях, когда текстовый диапазон охватывает границы
unit
. Например, "{U}RL https://www.microsoft.com/ внедрен в текст", где "{" и "}" являются конечными точками диапазона текста.Результирующий диапазон перемещается в DocumentRange в начало запрошенной границы
unit
.Диапазон перемещается вперед или назад в DocumentRange на запрошенное число границ
unit
.Затем диапазон расширяется из вырожденного состояния путем перемещения конечной точки End на одну запрошенную границу
unit
.
Примеры корректировки текстового диапазона для Move() и ExpandToEnclosingUnit()
Примечание
Эти действия необходимы, так как средство чтения с экрана обычно зачитывает полное слово, предложение или весь абзац в точке вставки или любой виртуальной позиции курсора.
ExpandToEnclosingUnit учитывает как скрытый, так и видимый текст. Клиент модель автоматизации пользовательского интерфейса может проверка для видимости IsHiddenAttribute текста.
ExpandToEnclosingUnit откладывается до следующего по величине TextUnit поддерживаемого, если заданный TextUnit не поддерживается элементом управления.
Порядок от наименьшей единицы до самого большого приведен ниже.