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


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

Замечание

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

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

Автоматизация пользовательского интерфейса использует шаблоны элементов управления для представления распространенных действий элементов управления. Например, вы используете шаблон элемента управления Invoke для элементов управления, которые можно активировать (например, кнопки), и шаблон элемента управления Scroll для элементов управления с полосами прокрутки (например, списковые поля, представление списка или комбинированные поля). Так как каждый шаблон элемента управления представляет отдельную функциональность, их можно объединить для описания полного набора функций, поддерживаемых определенным элементом управления.

Замечание

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

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

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

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

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

  • Свойства и события предоставляют сведения о функциональных возможностях шаблона элемента управления, а также сведения о состоянии элемента управления.

Шаблоны элементов управления относятся к пользовательскому интерфейсу, так как интерфейсы относятся к объектам com-модели компонентов. В COM можно запросить объект, чтобы узнать, какие интерфейсы она поддерживает, а затем использовать эти интерфейсы для доступа к функциям. В службе автоматизации пользовательского интерфейса клиенты автоматизации пользовательского интерфейса могут запрашивать элемент управления, который он поддерживает, а затем взаимодействовать с элементом управления с помощью свойств, методов, событий и структур, предоставляемых поддерживаемыми шаблонами элементов управления. Например, для многостроного поля редактирования поставщики автоматизации пользовательского интерфейса реализуют IScrollProvider. Когда клиент знает, что AutomationElement поддерживает ScrollPattern шаблон элемента управления, он может использовать свойства, методы и события, предоставляемые этим шаблоном элемента управления, для управления элементом управления или получения информации о нем.

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

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

Клиенты автоматизации пользовательского интерфейса получают доступ к методам и свойствам классов шаблонов элементов управления автоматизации пользовательского интерфейса и используют их для получения сведений о пользовательском интерфейсе или управления пользовательским интерфейсом. Эти классы шаблонов элементов управления находятся в System.Windows.Automation пространстве имен (например, InvokePattern и SelectionPattern).

Клиенты используют методы AutomationElement (такие как AutomationElement.GetCurrentPropertyValue или AutomationElement.GetCachedPropertyValue) или средства доступа CLR для доступа к свойствам автоматизации пользовательского интерфейса в паттерне. Каждый класс шаблона элемента управления имеет поле элемента (например, InvokePattern.Pattern или SelectionPattern.Pattern), которое определяет этот шаблон элемента управления и может передаваться в качестве параметра в GetCachedPattern или GetCurrentPattern для получения этого шаблона для AutomationElement.

Шаблоны динамических элементов управления

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

Классы и интерфейсы шаблонов управления

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

Класс шаблонов элементов управления Интерфейс поставщика Описание
DockPattern IDockProvider Используется для элементов управления, которые можно закрепить в контейнере для докинга. Например, панели инструментов или палитры инструментов.
ExpandCollapsePattern IExpandCollapseProvider Используется для элементов управления, которые можно развернуть или свернуть. Например, элементы меню в приложении, например меню "Файл ".
GridPattern IGridProvider Используется для элементов управления, поддерживающих функции сетки, такие как изменение размера и перемещение в указанную ячейку. Например, представление больших значков в проводнике Windows или простых таблицах без заголовков в Microsoft Word.
GridItemPattern IGridItemProvider Используется для элементов управления, имеющих ячейки в сетках. Отдельные ячейки должны поддерживать шаблон GridItem. Например, каждая ячейка в представлении подробностей Microsoft Windows Explorer.
InvokePattern IInvokeProvider Используется для элементов управления, которые можно вызвать, например кнопку.
MultipleViewPattern IMultipleViewProvider Используется для элементов управления, которые могут переключаться между несколькими представлениями одного набора сведений, данных или дочерних элементов. Например, элемент управления представлением списка, где данные доступны в эскизах, плитке, значке, списке или представлениях сведений.
RangeValuePattern IRangeValueProvider Используется для элементов управления с диапазоном значений, которые можно применить к элементу управления. Например, элемент управления «спиннер», содержащий годы, может иметь диапазон от 1900 до 2010 года, в то время как другой элемент управления «спиннер», отображающий месяцы, будет иметь диапазон от 1 до 12.
ScrollPattern IScrollProvider Используется для элементов управления, которые могут прокручиваться. Например, элемент управления, имеющий полосы прокрутки, которые активны, когда информации больше, чем можно отобразить в области просмотра элемента управления.
ScrollItemPattern IScrollItemProvider Используется для элементов управления с отдельными элементами в списке, который прокручивается. Например, элемент управления списком, включающий отдельные пункты в списке прокрутки, как, например, элемент управления комбинированным списком.
SelectionPattern ISelectionProvider Используется для элементов управления контейнерами выбора. Например, элементы списка и поля со списком.
SelectionItemPattern ISelectionItemProvider Используется для отдельных элементов в элементах управления контейнера выбора, таких как поля списков и комбинированные списки.
TablePattern ITableProvider Используется для элементов управления, имеющих сетку и заголовки. Например, рабочие листы Microsoft Excel.
TableItemPattern ITableItemProvider Используется для элементов в таблице.
TextPattern ITextProvider Используется для редактирования элементов управления и документов, предоставляющих текстовую информацию.
TogglePattern IToggleProvider Используется для элементов управления, в которых можно переключать состояние. Например, флажки и контрольные пункты меню.
TransformPattern ITransformProvider Используется для элементов управления, которые можно изменять размер, перемещать и поворачивать. Типичное использование шаблона управления "Преобразование" в конструкторах, формах, графических редакторах и программах для рисования.
ValuePattern IValueProvider Позволяет клиентам получать или задавать значение для элементов управления, которые не поддерживают диапазон значений. Например, средство выбора даты и времени.
WindowPattern IWindowProvider Предоставляет сведения, относящиеся к окнам, основную концепцию операционной системы Microsoft Windows. Примерами элементов управления, которые являются окнами, являются окна приложений верхнего уровня (Microsoft Word, Microsoft Windows Explorer и т. д.), дочерние окна интерфейса с несколькими документами (MDI) и диалоговые окна.

См. также