Поддержка автоматизации пользовательского интерфейса для типа элемента управления MenuItem
Примечание.
Эта документация предназначена для разработчиков .NET Framework, желающих использовать управляемые классы автоматизации пользовательского интерфейса, определенные в пространстве имен System.Windows.Automation. Последние сведения об автоматизации пользовательского интерфейса см. в статье API автоматизации Windows. Автоматизация пользовательского интерфейса.
В этом разделе содержатся сведения о поддержке Microsoft модель автоматизации пользовательского интерфейса для типа элемента управления MenuItem. Он описывает структуру дерева элементов управления Microsoft модель автоматизации пользовательского интерфейса и предоставляет свойства и шаблоны элементов управления, необходимые для типа элемента управления MenuItem.
Элемент управления "Меню" позволяет иерархически организовать элементы, связанные с командами и обработчиками событий. В типичном приложении Microsoft Windows строка меню содержит несколько элементов меню (например , "Файл", "Изменить" и "Окно"), а каждый пункт меню отображает меню. Меню содержит набор пунктов меню (таких как Создать, Открытьи Закрыть), которые можно развернуть, чтобы отобразить дополнительные пункты меню или выполнить определенное действие, нажав соответствующий пункт. Пункт меню может размещаться в меню, строке меню или панели инструментов.
В следующих разделах определяются необходимые модель автоматизации пользовательского интерфейса структура дерева, свойства, шаблоны элементов управления и события для типа элемента управления MenuItem. Требования модель автоматизации пользовательского интерфейса применяются ко всем элементам управления списками, будь то Windows Presentation Foundation (WPF), Win32 или Windows Forms.
Требуемая древовидная структура модели автоматизации пользовательского интерфейса
В следующей таблице представлено представление элемента управления и представление содержимого дерева модель автоматизации пользовательского интерфейса, относящегося к элементам управления элементами меню, и описывает, что можно содержать в каждом представлении. Дополнительные сведения о дереве модель автоматизации пользовательского интерфейса см. в модель автоматизации пользовательского интерфейса обзоре дерева.
Представление элемента управления | Представление содержимого |
---|---|
MenuItem "Справка"
|
MenuItem "Справка" — MenuItem "Разделы справки" - MenuItem "О Блокнот" |
Представление элемента управления меню содержит структуру дерева модель автоматизации пользовательского интерфейса, показанную выше. Обратите внимание, что элемент меню справки включен, чтобы лучше иллюстрировать структуру в типичном меню в иерархии подменю.
В представлении содержимого меню отсутствует в дереве модель автоматизации пользовательского интерфейса, так как оно не передает значимые сведения для конечного пользователя.
Требуемые свойства модели автоматизации пользовательского интерфейса
В следующей таблице перечислены свойства модель автоматизации пользовательского интерфейса, значение или определение которого особенно важно для элементов управления элементами меню. Дополнительные сведения о свойствах модель автоматизации пользовательского интерфейса см. в разделе модель автоматизации пользовательского интерфейса Свойства для клиентов.
Свойство | Значение | Описание |
---|---|---|
AutomationIdProperty | См. примечания. | Значение этого свойства должно быть уникальным среди всех элементов управления в приложении. |
BoundingRectangleProperty | См. примечания. | Внешний прямоугольник, содержащий весь элемент управления. |
ClickablePointProperty | См. примечания. | Поддерживается при наличии ограничивающего прямоугольника. Если не все точки внутри ограничивающего прямоугольника являются интерактивными и выполняется специализированная проверка на наличие данных, выполните переопределение и предоставьте интерактивную точку. |
IsKeyboardFocusableProperty | См. примечания. | Если элемент управления может получать фокус клавиатуры, он должен поддерживать это свойство. |
NameProperty | См. примечания. | Элемент управления элементом меню включен в представление содержимого дерева модель автоматизации пользовательского интерфейса и самозаметен именем. |
LabeledByProperty | Null |
Без метки. |
ControlTypeProperty | MenuItem | Это значение является одинаковым для всех инфраструктур пользовательского интерфейса. |
LocalizedControlTypeProperty | "пункт меню" | Локализованная строка, соответствующая типу элемента управления MenuItem. |
IsContentElementProperty | Истина | Элемент управления элементом меню никогда не включается в представление содержимого дерева модель автоматизации пользовательского интерфейса. |
IsControlElementProperty | Истина | Элемент управления элементом меню всегда должен быть включен в представление элемента управления дерева модель автоматизации пользовательского интерфейса. |
Необходимые шаблоны элементов управления модели автоматизации пользовательского интерфейса
В следующей таблице перечислены шаблоны элементов управления модель автоматизации пользовательского интерфейса, которые должны поддерживаться элементами управления элементом меню. Дополнительные сведения о шаблонах элементов управления см. в разделе UI Automation Control Patterns Overview.
Свойство шаблона элемента управления | Поддержка | Примечания. |
---|---|---|
IExpandCollapseProvider | Зависит | Если элемент управления можно разворачивать и сворачивать, реализуйте IExpandCollapseProvider. |
IInvokeProvider | Зависит | Если элемент управления выполняет единственное действие или команду, реализуйте IInvokeProvider. |
IToggleProvider | Зависит | Если элемент управления представляет параметр, который можно включить или отключить, реализуйте IToggleProvider. |
ISelectionItemProvider | Зависит | Если элемент управления используется для выбора из списка пунктов меню, реализуйте ISelectionItemProvider. |
События модели автоматизации пользовательского интерфейса для пункта меню
В следующей таблице перечислены события Microsoft модель автоматизации пользовательского интерфейса, связанные с элементом управления элементом меню.
Событие | Поддержка | Описание |
---|---|---|
InvokedEvent | Зависит | Должно вызываться, если элемент управления поддерживает шаблон элемента управления Invoke. |
Событие изменения свойстваToggleStateProperty | Зависит | Должно вызываться, если элемент управления поддерживает шаблон элемента управления Toggle. |
Событие изменения свойстваExpandCollapseStateProperty | Зависит | Должно вызываться, если элемент управления поддерживает шаблон элемента управления Expand Collapse. |
ElementSelectedEvent | Зависит | Нет. |
Необходимые события модели автоматизации пользовательского интерфейса
В следующей таблице перечислены события модель автоматизации пользовательского интерфейса, которые должны поддерживаться всеми элементами управления элементами меню. Дополнительные сведения о событиях см. в разделе UI Automation Events Overview.
событие модель автоматизации пользовательского интерфейса | Поддержка/значение | Примечания. |
---|---|---|
InvokedEvent | Зависит | нет |
ElementAddedToSelectionEvent | Зависит | нет |
ElementRemovedFromSelectionEvent | Зависит | нет |
ElementSelectedEvent | Зависит | нет |
Событие изменения свойстваBoundingRectangleProperty | Обязательное поле | нет |
Событие изменения свойстваIsOffscreenProperty | Обязательное поле | нет |
Событие изменения свойстваIsEnabledProperty | Обязательное поле | нет |
Событие изменения свойстваExpandCollapseStateProperty | Зависит | нет |
Событие изменения свойстваToggleStateProperty | Зависит | нет |
AutomationFocusChangedEvent | Обязательное поле | нет |
StructureChangedEvent | Обязательное поле | нет |
Проблемы прежних версий
Переключатель шаблон будет поддерживаться только в том случае, если элемент меню Win32 проверка и может быть программно определен для поддержки шаблона переключения. Так как элемент меню Win32 не предоставляет возможности проверка, шаблон вызова будет поддерживаться, если элемент меню не проверка. Исключение будет сделано, чтобы всегда поддерживать шаблон Invoke, даже для пунктов меню, которые должны поддерживать только шаблон Toggle. Это делается для того, чтобы клиенты ошибочно не думали, что элемент, который поддерживал шаблон Invoke (когда пункт меню не был отмечен), больше не поддерживает этот шаблон, когда становится отмеченным.