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


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

Замечание

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

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

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

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

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

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

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

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

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

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

Необработанное представление

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

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

Вид управления

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

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

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

Просмотр содержимого

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

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

См. также

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