Общие сведения о дереве модели автоматизации пользовательского интерфейса
Примечание
Эта документация предназначена для разработчиков .NET Framework, желающих использовать управляемые классы автоматизации пользовательского интерфейса, определенные в пространстве имен System.Windows.Automation. Последние сведения об автоматизации пользовательского интерфейса см. в статье API автоматизации Windows. Автоматизация пользовательского интерфейса.
Продукты специальных возможностей и тестовые скрипты перемещаются по дереву модель автоматизации пользовательского интерфейса для сбора сведений о пользовательском интерфейсе и его элементах.
В дереве модель автоматизации пользовательского интерфейса есть корневой элемент (RootElement), представляющий текущий рабочий стол и дочерние элементы которого представляют окна приложений. Каждый из этих дочерних элементов может содержать элементы пользовательского интерфейса, такие как меню, кнопки, панели инструментов и списки. В свою очередь эти элементы тоже могут содержать элементы, такие как элементы списка.
Дерево модель автоматизации пользовательского интерфейса не является фиксированной структурой и редко встречается в его совокупности, так как оно может содержать тысячи элементов. Его части создаются по необходимости, и дерево может претерпевать изменения при добавлении, перемещении или удалении элементов.
модель автоматизации пользовательского интерфейса поставщики поддерживают дерево модель автоматизации пользовательского интерфейса, реализуя навигацию между элементами в фрагменте, который состоит из корня (обычно размещенного в окне) и поддеревья. Однако поставщики не интересуются переходами из одного элемента управления в другой. Этим управляет ядро модель автоматизации пользовательского интерфейса, используя сведения от поставщиков окон по умолчанию.
Представления дерева автоматизации
Дерево модель автоматизации пользовательского интерфейса можно отфильтровать для создания представлений, содержащих только те AutomationElement объекты, которые относятся к конкретному клиенту. Такой подход позволяет клиентам настраивать структуру, представленную с помощью модель автоматизации пользовательского интерфейса, в соответствии с их конкретными потребностями.
Клиент может настроить представление двумя способами: определением области и фильтрацией. Определение области — это определение пространства представления, начиная от базового элемента: например, приложению может требоваться найти только прямой дочерний элемент рабочего стола или найти все потомки окна приложения. Фильтрацией является определение типов элементов, которые должны быть включены в представление.
Поставщики автоматизации пользовательского интерфейса поддерживают фильтрацию путем определения свойств элементов, включая свойства IsControlElementProperty и IsContentElementProperty.
модель автоматизации пользовательского интерфейса предоставляет три представления по умолчанию. Эти представления определяются типом выполняемой фильтрации; область любого представления задается приложением. Кроме того, приложение может применять к свойствам другие фильтры; например, чтобы включить только включенные элементы управления в представление элемента управления.
Базовое представление
Необработанное представление дерева модель автоматизации пользовательского интерфейса — это полное дерево AutomationElement объектов, для которых рабочий стол является корнем. Базовое представление точно следует собственной программной структуре приложения и таким образом является наиболее подробным доступным представлением. Оно также является основой, на которой строятся другие представления дерева. Так как это представление зависит от базовой платформы пользовательского интерфейса, необработанное представление кнопки WPF будет иметь необработанное представление, отличное от представления кнопки Win32.
Базовое представление можно получить путем поиска элементов без указания свойств или с помощью RawViewWalker для навигации по дереву.
Представление элемента управления
Представление элемента управления дерева модель автоматизации пользовательского интерфейса упрощает задачу продукта специальных возможностей, описывая пользовательский интерфейс для конечного пользователя и помогая конечному пользователю взаимодействовать с приложением, так как оно тесно сопоставляется со структурой пользовательского интерфейса, воспринимаемой конечным пользователем.
Представление элемента управления является подмножеством базового представления. Он включает все элементы пользовательского интерфейса из необработанного представления, которые пользователь может понять как интерактивные или способствующие логической структуре элемента управления в пользовательском интерфейсе. Примерами элементов пользовательского интерфейса, которые влияют на логическую структуру пользовательского интерфейса, но сами по себе не являются интерактивными, являются контейнеры элементов, такие как заголовки представления списка, панели инструментов, меню и строка состояния. Неинтерактивные элементы, используемые просто для разметки в декоративных целях, не будут отображаться в представлении элемента управления. В качестве примера можно привести панель, которая используется только для размещения элементов управления в диалоговом окне, но сама не содержит никакой информации. Неинтерактивными элементами, которые будут отображаться в представлении элемента управления, являются графики с данными и статический текст в диалоговом окне. Неинтерактивные элементы, включенные в представление элемента управления, не могут получать фокус клавиатуры.
Представление элемента управления можно получить путем поиска элементов, свойство IsControlElement которых имеет значение true
, или используя ControlViewWalker для навигации по дереву.
Представление содержимого
Представление содержимого дерева модель автоматизации пользовательского интерфейса является подмножеством представления элемента управления. Он содержит элементы пользовательского интерфейса, которые передают истинные сведения в пользовательском интерфейсе, включая элементы пользовательского интерфейса, которые могут получать фокус клавиатуры, и текст, который не является меткой в элементе пользовательского интерфейса. Например, значения в раскрывающемся поле со списком будут отображаться в представлении содержимого, так как они представляют информацию конечному пользователю. В представлении содержимого поле со списком и список представлены в виде коллекции элементов пользовательского интерфейса, где можно выбрать один или, возможно, несколько элементов. Тот факт, что один их них всегда открыт, а другой можно развернуть и свернуть, не имеет значения в представлении содержимого, поскольку оно предназначено для отображения данных или содержимого для пользователя.
Представление содержимого можно получить путем поиска элементов, свойство IsContentElement которых имеет значение true
, или используя ContentViewWalker для навигации по дереву.