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

Примечание

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

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

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

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

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

Представления дерева автоматизации

Дерево модели автоматизации пользовательского интерфейса можно фильтровать для создания представлений, содержащих только те AutomationElement объекты, которые относятся к конкретному клиенту. Такой подход позволяет клиентам настраивать структуру, представленную в модели автоматизации пользовательского интерфейса, в соответствии с конкретными потребностями.

Клиент может настроить представление двумя способами: определением области и фильтрацией. Определение области — это определение пространства представления, начиная от базового элемента: например, приложению может требоваться найти только прямой дочерний элемент рабочего стола или найти все потомки окна приложения. Фильтрацией является определение типов элементов, которые должны быть включены в представление.

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

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

Базовое представление

Необработанное представление дерева модели автоматизации пользовательского интерфейса представляет собой полное дерево AutomationElement объектов, для которых настольным компьютером является корневой каталог. Базовое представление точно следует собственной программной структуре приложения и таким образом является наиболее подробным доступным представлением. Оно также является основой, на которой строятся другие представления дерева. Поскольку это представление зависит от базовой платформы пользовательского интерфейса, необработанное представление кнопки WPF будет иметь разное представление RAW, чем кнопка Win32.

Базовое представление можно получить путем поиска элементов без указания свойств или с помощью RawViewWalker для навигации по дереву.

Представление элемента управления

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

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

Представление элемента управления можно получить путем поиска элементов, свойство IsControlElement которых имеет значение true, или используя ControlViewWalker для навигации по дереву.

Представление содержимого

Представление содержимого дерева модели автоматизации пользовательского интерфейса является подмножеством представления элемента управления. Он содержит элементы ПОЛЬЗОВАТЕЛЬСКОГО интерфейса, которые сообщают о истинной информации в пользовательском интерфейсе, включая элементы пользовательского интерфейса, которые могут получать фокус клавиатуры, и некоторый текст, который не является меткой элемента пользовательского интерфейса. Например, значения в раскрывающемся поле со списком будут отображаться в представлении содержимого, так как они представляют информацию конечному пользователю. В представлении содержимого поле со списком и поле со списком представляются в виде коллекции элементов пользовательского интерфейса, где можно выбрать один или несколько элементов. Тот факт, что один их них всегда открыт, а другой можно развернуть и свернуть, не имеет значения в представлении содержимого, поскольку оно предназначено для отображения данных или содержимого для пользователя.

Представление содержимого можно получить путем поиска элементов, свойство IsContentElement которых имеет значение true, или используя ContentViewWalker для навигации по дереву.

См. также