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

Примечание.

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

В этом обзоре представлены шаблоны элементов управления для клиентов автоматизации пользовательского интерфейса. В ней содержатся сведения о том, как клиент модель автоматизации пользовательского интерфейса может использовать шаблоны элементов управления для доступа к сведениям о пользовательском интерфейсе(ui).

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

Полный список шаблонов элементов управления см. в разделе UI Automation Control Patterns Overview.

Получение шаблонов элементов управления

Клиенты получают шаблон элемента управления из AutomationElement , вызывая AutomationElement.GetCachedPattern или AutomationElement.GetCurrentPattern.

Клиенты могут использовать метод GetSupportedPatterns или отдельное свойство IsPatternAvailable (например, IsTextPatternAvailableProperty), чтобы определить, поддерживается ли шаблон или группа шаблонов в AutomationElement. Однако более эффективно будет попытаться получить шаблон элемента управления и проверить его на наличие ссылки null , чем проверить поддерживаемые свойства и получить шаблон элемента управления, поскольку это приводит к меньшим числом вызовов между процессами.

В следующем примере показано, как получить шаблон элемента управления TextPattern из объекта AutomationElement.

// Specify the control type we're looking for, in this case 'Document'
PropertyCondition cond = new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Document);

// target --> The root AutomationElement.
AutomationElement textProvider = target.FindFirst(TreeScope.Descendants, cond);

targetTextPattern = textProvider.GetCurrentPattern(TextPattern.Pattern) as TextPattern;

if (targetTextPattern == null)
{
    Console.WriteLine("Root element does not contain a descendant that supports TextPattern.");
    return;
}

Получение свойств в шаблонах элементов управления

Клиенты могут получать значения свойств в шаблонах элементов управления, вызывая AutomationElement.GetCachedPropertyValue или AutomationElement.GetCurrentPropertyValue и преобразуя возвращаемый объекта в соответствующий тип. Дополнительные сведения о свойствах модель автоматизации пользовательского интерфейса см. в разделе модель автоматизации пользовательского интерфейса Свойства для клиентов.

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

Элементы управления с переменными шаблонами

Некоторые типы элементов управления поддерживают различные шаблоны в зависимости от их состояния или способа использования элемента управления. Примерами элементов управления, которые могут содержать шаблоны переменных, являются представления списков (эскизы, плитки, значки, списки, сведения), диаграммы Microsoft Excel (круговая диаграмма, строка, строка, значение ячейки с формулой), область документа Microsoft Word (обычный, веб-макет, структура, макет печати, предварительный просмотр печати) и кожа Microsoft Медиаплеер Windows.

Элементы управления, реализующие настраиваемые типы элементов управления, могут содержать любой набор шаблонов элементов управления, необходимых для представления их возможностей.

См. также