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


Общие сведения о TextPattern модели автоматизации пользовательского интерфейса

Примечание.

Эта документация предназначена для разработчиков .NET Framework, желающих использовать управляемые классы автоматизации пользовательского интерфейса, определенные в пространстве имен System.Windows.Automation. Последние сведения об автоматизации пользовательского интерфейса см. в статье API автоматизации Windows. Автоматизация пользовательского интерфейса.

В этом обзоре описывается, как использовать Microsoft модель автоматизации пользовательского интерфейса для предоставления текстового содержимого, включая атрибуты формата и стиля, элементов управления текстом в модель автоматизации пользовательского интерфейса поддерживаемых платформах. Эти элементы управления включают, но не ограничиваются, microsoft платформа .NET Framework TextBox и RichTextBox их эквивалентами Win32.

Предоставление текстового содержимого элемента управления осуществляется с помощью шаблона элемента управления TextPattern , который представляет содержимое текстового контейнера в качестве текстового потока. В свою очередь TextPattern требует поддержки класса TextPatternRange для предоставления атрибутов формата и стиля. TextPatternRange поддерживает TextPattern , предоставляя непрерывный текст или несколько раздельных фрагментов текста в текстовый контейнер с коллекцией конечных точек Start и End . TextPatternRange поддерживает такие функциональные возможности, как выбор, сравнение, извлечение и обход.

Примечание.

Классы TextPattern не предоставляют средства для вставки или изменения текста. Однако в зависимости от элемента управления это может выполняться модель автоматизации пользовательского интерфейса ValuePattern или с помощью прямого ввода клавиатуры. Пример см. в разделе TextPattern Insert Text Sample .

Функции, описанные в этом обзоре, исключительно важны для поставщиков вспомогательных технологий и их пользователей. Вспомогательные технологии могут использовать модель автоматизации пользовательского интерфейса для сбора полных сведений о форматировании текста для пользователя и предоставления программной навигации и выделения текста TextUnit (символ, слово, строка или абзац).

Сравнение TextPattern модели автоматизации пользовательского интерфейса и инфраструктуры текстовых служб (TSF)

Text Services Framework (TSF) — это простая и масштабируемая системная платформа, которая позволяет службам естественного языка и расширенному вводу текста на рабочем столе и в приложениях. Помимо обеспечения интерфейсов для приложений, чтобы предоставлять их текстовое хранилище, она также поддерживает метаданные для этого текстового хранилища.

Однако TSF был разработан для приложений, которые должны вводить входные данные в сценарии с учетом контекста, в то время как TextPattern это решение только для чтения (с ограниченным обходным решением, отмеченным выше) предназначено для обеспечения оптимизированного доступа к текстовому хранилищу для устройств с экрана и Брайля.

Короче говоря, доступные технологии, требующие доступа только для чтения к текстовому хранилищу, могут использовать TextPattern, но потребуется более сложная функциональность TSF для ввода с учетом контекста.

Типы элементов управления

Текст

Элемент управления «Текст» является базовым элементом, представляющим фрагмент текста на экране.

Отдельный элемент управления «Текст» может использоваться в качестве метки или статического текста в форме. Элементы управления «Текст» могут также содержаться в структуре ListItem, TreeItem или DataItem.

Примечание.

Элементы управления текстом могут не отображаться в представлении содержимого дерева модель автоматизации пользовательского интерфейса (см. модель автоматизации пользовательского интерфейса обзор дерева). Это объясняется тем, что элементы управления «Текст» часто отображаются посредством свойства «Имя» другого элемента управления. Например текст, который используется для метки элемента управления «Поле ввода», предоставляется посредством свойства «Имя» элемента управления «Поле ввода». Так как элемент управления "Изменить" находится в представлении содержимого дерева модель автоматизации пользовательского интерфейса, для самого текстового элемента в этом представлении дерева модель автоматизации пользовательского интерфейса не требуется. Единственный текст, который отображается в представлении содержимого, это текст, не являющийся избыточными сведениями. Это позволяет любой вспомогательной технологии быстро отфильтровывать только те части сведений, которые нужны пользователям.

Редактировать

Элементы управления «Поле ввода» предоставляют пользователям возможность просматривать и редактировать одну строку текста.

Примечание.

В некоторых сценариях макета одна строка текста может переноситься.

Документ

С помощью элементов управления «Документ» пользователи могут перемещаться по нескольким страницам текста и получать из них сведения.

API клиента TextPattern

Тип Описание
Класс System.Windows.Automation.TextPattern Точка входа для текстовой модели Microsoft модель автоматизации пользовательского интерфейса.

Этот класс также содержит два прослушивателя событий TextPattern , TextSelectionChangedEvent и TextChangedEvent.
Класс System.Windows.Automation.Text.TextPatternRange Представление фрагмента текста в текстовом контейнере, который поддерживает TextPattern.

Клиенты автоматизации пользовательского интерфейса должны уделять особое внимание текущей действительности текстового диапазона, созданного с помощью TextPatternRange. Если исходный текст в элементе управления «Текст» полностью заменяется новым текстом, текущий диапазон текста становится недействительным. Однако текстовый диапазон по-прежнему может иметь некоторую целесообразность, если изменялась только часть исходного текста, и базовый элемент управления «Текст» управляет своим текстовым «указателем» с помощью привязок (или конечных точек), а не с помощью абсолютного расположения символов.

Клиенты могут прослушивать TextChangedEvent для уведомления о каких-либо изменениях текстового содержимого, с которым они работают.
Класс System.Windows.Automation.AutomationTextAttribute Используется для идентификации атрибутов форматирования текстового диапазона.

API поставщика TextPattern

Элементы пользовательского интерфейса или элементы управления, которые поддерживаются TextPattern путем реализации ITextProvider интерфейсов и ITextRangeProvider интерфейсов либо в собственном коде, либо через прокси-серверы Microsoft модель автоматизации пользовательского интерфейса, могут предоставлять подробные сведения о атрибутах для любого текста, содержащегося в дополнение к обеспечению надежных возможностей навигации.

Поставщик TextPattern не должен поддерживать все атрибуты текста, если элемент управления не предоставляет поддержку для какого-либо конкретного атрибута.

Поставщик TextPattern должен поддерживать функции GetSelection и Select , если элемент управления поддерживает выделение текста или помещение текстового курсора (или системного курсора) в текстовое поле. Если элемент управления не поддерживает эту функцию, то не требуется поддерживать любой из этих методов. Однако этот элемент управления должен предоставлять тип выделения текста, который он поддерживает, путем реализации свойства SupportedTextSelection .

Поставщик TextPattern всегда должен поддерживать константы TextUnitCharacter и Document , а также любые другие константы TextUnit , которые он способен поддерживать.

Примечание.

Поставщик может пропустить поддержку определенных TextUnit откладывая поддержку до следующего наибольшего объекта TextUnit , поддерживаемого в следующем порядке: Character, Format, Word, Line, Paragraph, Pageи Document.

API Description
ITextProvider Интерфейс Предоставляет методы, свойства и атрибуты, которые поддерживают TextPattern в клиентских приложениях (см. ITextProvider).
ITextRangeProvider Интерфейс Представляет фрагмент текста в поставщике текста (см. ITextRangeProvider).
Класс System.Windows.Automation.TextPatternIdentifiers Содержит значения, используемые в качестве идентификаторов для поставщиков текста (см. TextPatternIdentifiers).

Безопасность

Архитектура модель автоматизации пользовательского интерфейса была разработана с учетом безопасности (см. модель автоматизации пользовательского интерфейса обзор безопасности). Однако для классов TextPattern, рассматриваемых в этом обзоре, требуются некоторые особые рекомендации по обеспечению безопасности.

  • Поставщики текстов Майкрософт модель автоматизации пользовательского интерфейса предоставляют интерфейсы только для чтения и не предоставляют возможность изменять существующий текст в элементе управления.

  • модель автоматизации пользовательского интерфейса клиенты могут использовать только microsoft модель автоматизации пользовательского интерфейса, если они полностью надежны. Примером будет защищенный рабочий стол входа в систему, где можно запускать только известные и доверенные приложения.

  • Разработчики модель автоматизации пользовательского интерфейса поставщиков должны знать, что все сведения, которые они выбирают для предоставления в своих элементах управления через Microsoft модель автоматизации пользовательского интерфейса, по сути, общедоступны и полностью доступны другим кодом. Корпорация Майкрософт модель автоматизации пользовательского интерфейса не предпринимает никаких усилий по определению надежности любого клиента модель автоматизации пользовательского интерфейса и, следовательно, модель автоматизации пользовательского интерфейса поставщик не должен предоставлять защищенное содержимое или конфиденциальную текстовую информацию (например, поля паролей).

  • Одним из наиболее значительных изменений в безопасности Для Windows Vista широко называются "Безопасные входные данные", которые охватывают такие технологии, как наименее привилегированные (или ограниченные) учетные записи пользователей (LUA) и изоляция уровня привилегий пользовательского интерфейса (UIPI).

    • UIPI запрещает программам управление и наблюдение за другими более «привилегированными» программами, предотвращая межпроцессные атаки оконных сообщений, которые подделывают пользовательский ввод.

    • LUA устанавливает ограничения на права приложений, запускаемых пользователями из группы «Администраторы». Приложения не обязательно будут иметь административные привилегии, но будут выполняться с наименьшими необходимыми правами. В результате в сценариях LUA возможны некоторые ограничения. В первую очередь это усечение строк (в том числе строк TextPattern), где это может требоваться для ограничения размера строк, извлекаемых из приложений уровня администратора, чтобы им не приходилось выделять память до момента отключения приложения.

Производительность

Поскольку TextPattern основывается на межпроцессных вызовах для большей части своих функциональных возможностей, он не предоставляет механизм кэширования для повышения производительности при обработке содержимого. Это в отличие от других шаблонов управления в Microsoft модель автоматизации пользовательского интерфейса, к которым можно получить доступ с помощью GetCachedPattern методов или TryGetCachedPattern методов.

Один из способов повышения производительности состоит в том, чтобы клиенты автоматизации пользовательского интерфейса гарантированно пытались извлекать блоки текста среднего размера с помощью GetText. Например, вызовы GetText(1) повлекут за собой межпроцессные попадания для каждого символа, тогда как один вызов GetText(-1) повлечет за собой одно межпроцессное попадание, но может иметь высокую задержку в зависимости от размера поставщика текста.

Терминология TextPattern

Attribute
Характеристика форматирования текстового диапазона (например, IsItalicAttribute или FontNameAttribute).

Вырожденный диапазон
Вырожденный диапазон — это пустой или содержащий нулевые символы текстовый диапазон. Применительно к целям шаблона элемента управления TextPattern точка вставки текста (или системного курсора) считается вырожденным диапазоном. Если никакой текст не выбран, метод GetSelection вернет вырожденный диапазон в точке вставки текста, а метод RangeFromPoint вернет вырожденный диапазон в качестве своей начальной точки. МетодыRangeFromChild и GetVisibleRanges могут возвращать вырожденные диапазоны, когда поставщик текста не может найти текстовые диапазоны, соответствующие заданному условию. Этот вырожденный диапазон можно использовать в качестве начальной точки в поставщике текста. FindText и FindAttribute возвращает пустую ссылку (Nothing в Microsoft Visual Basic .NET), чтобы избежать путаницы с обнаруженным диапазоном и дегенерным диапазоном.

Внедренный объект
В текстовой модели модель автоматизации пользовательского интерфейса существует два типа внедренных объектов. Они состоят из элементов с текстовым содержимым, таких как гиперссылки или таблицы, и элементов управления, таких как изображения и кнопки. Дополнительные сведения см. в разделе Access Embedded Objects Using UI Automation.

Конечная точка
Абсолютная точка Start или End текстового диапазона в текстовом контейнере.

TextPatternRangeEndpoints (начало и конец). Ниже показан набор начальных и конечных точек.

TextRange
Представление фрагмента текста с начальной и конечной точками в текстовом контейнере, включающее все связанные атрибуты и функциональные возможности.

TextUnit
Предопределенная единица текста (символ, слово, строка или абзац), используемая для навигации по логическим сегментам текстового диапазона.

См. также