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

Примечание.

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

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

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

Примечание.

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

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

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

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

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

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

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

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

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

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

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

Динамические шаблоны элементов управления

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

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

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

Класс шаблона элемента управления Интерфейс поставщика Description
DockPattern IDockProvider Используется для элементов управления, которые могут быть закреплены в контейнере закрепления. Например, это могут быть панели инструментов или палитры инструментов.
ExpandCollapsePattern IExpandCollapseProvider Используется для элементов управления, которые можно разворачивать и сворачивать. Например, это могут быть пункты меню в приложении, такие как меню Файл .
GridPattern IGridProvider Используется для элементов управления, которые поддерживают функциональные возможности сетки, такие как изменение размера и перемещение в указанную ячейку. Например, представление больших значков в Windows Обозреватель или простых таблицах без заголовков в Microsoft Word.
GridItemPattern IGridItemProvider Используется для элементов управления, имеющих ячейки в сетках. Отдельные ячейки должны поддерживать шаблон GridItem. Например, каждая ячейка в представлении сведений о Microsoft Windows Обозреватель.
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 Используется для элементов управления с возможностью изменения размера, перемещения и вращения. Обычно шаблон элемента управления Transform используется в конструкторах, формах, графических редакторах и графических приложениях.
ValuePattern IValueProvider Позволяет клиентам получать или задавать значения для элементов управления, которые не поддерживают диапазон значений. Например, это может быть элемент управления "Выбор даты и времени".
WindowPattern IWindowProvider Предоставляет сведения, относящиеся к окнам, основную концепцию операционной системы Microsoft Windows. Примерами элементов управления, которые являются окнами, являются окна приложений верхнего уровня (Microsoft Word, Microsoft Windows Обозреватель и т. д.), дочерние окна и диалоговые окна с несколькими документами (MDI).

См. также