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

Примечание.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также