Compatibilidad de UI Automation para el tipo de control MenuItem

Nota

Esta documentación está dirigida a los desarrolladores de .NET Framework que quieran usar las clases de automatización de la interfaz de usuario administradas definidas en el espacio de nombres System.Windows.Automation. Para ver la información más reciente acerca de la automatización de la interfaz de usuario, consulte Windows Automation API: automatización de la interfaz de usuario.

En este tema se ofrece información sobre la compatibilidad de automatización de la interfaz de usuario de Microsoft con el tipo de control MenuItem. Describe la estructura de árbol de automatización de la interfaz de usuario de Microsoft del control y ofrece las propiedades y los patrones de control que son necesarios para el tipo de control MenuItem.

Un control de menú permite organizar jerárquicamente los elementos asociados a comandos y controladores de eventos. En una aplicación de Microsoft Windows típica, una barra de menús contiene varios elementos de menú (como Archivo, Editary Ventana) y cada elemento de menú muestra un menú. Un menú contiene una colección de elementos de menú (como Nuevo, Abiertoy Cerrar), que se puede expandir para mostrar elementos de menú adicionales o realizar una acción específica cuando se haga clic en ella. Un elemento de menú se pueden hospedar en un menú, barra de menús o barra de herramientas.

En las secciones siguientes se definen la estructura de árbol de automatización de la interfaz de usuario necesaria, las propiedades, los patrones de control y los eventos para el tipo de control MenuItem. Los requisitos de automatización de la interfaz de usuario se aplican a todos los controles de lista, ya sea Windows Presentation Foundation (WPF), Win32 o Windows Forms.

Estructura de árbol de Automatización de la interfaz de usuario necesaria

En la tabla siguiente se describe la vista de control y la vista de contenido del árbol de automatización de la interfaz de usuario que pertenece a los controles de elemento de menú y se describe lo que puede incluirse en cada vista. Para más información sobre el árbol de automatización de la interfaz de usuario, vea UI Automation Tree Overview.

Vista de control Vista de contenido
MenuItem "Ayuda"

  • Menú (submenú de elemento de menú de Ayuda)

    • MenuItem "Temas de Ayuda"
    • MenuItem "Acerca del Bloc de notas"
MenuItem "Ayuda"

- MenuItem "Temas de Ayuda"
- MenuItem "Acerca del Bloc de notas"

La vista de control del control de elemento de menú tiene la estructura de árbol de automatización de la interfaz de usuario mostrada arriba. Tenga en cuenta que se incluye el elemento de menú Ayuda para ilustrar mejor la estructura en una jerarquía típica de menú a submenú.

Para la vista de contenido, el menú no aparece en el árbol de automatización de la interfaz de usuario porque no transmite información significativa al usuario final.

Propiedades de Automatización de la interfaz de usuario necesarias

En la tabla siguiente se muestran las propiedades de automatización de la interfaz de usuario cuyo valor o definición es especialmente relevante para los controles de elemento de menú. Para más información sobre las propiedades de automatización de la interfaz de usuario, vea UI Automation Properties for Clients.

Propiedad Valor Descripción
AutomationIdProperty Vea las notas. El valor de esta propiedad debe ser único en todos los controles de una aplicación.
BoundingRectangleProperty Vea las notas. El rectángulo exterior que contiene el control completo.
ClickablePointProperty Vea las notas. Se admite si hay un rectángulo delimitador. Si no todos los puntos que se encuentran dentro del rectángulo delimitador son seleccionables, y realiza pruebas de aciertos especializadas, invalide y ofrezca un punto en el que hacer clic.
IsKeyboardFocusableProperty Vea las notas. Si el control puede recibir el foco del teclado, debe admitir esta propiedad.
NameProperty Vea las notas. El control de elemento de menú se incluye en la vista de contenido del árbol de automatización de la interfaz de usuario y tiene como etiqueta propia un nombre.
LabeledByProperty Null Sin etiqueta.
ControlTypeProperty MenuItem Este valor es el mismo para todos los marcos de trabajo de la interfaz de usuario.
LocalizedControlTypeProperty "elemento de menú" Cadena localizada que corresponde al tipo de control MenuItem.
IsContentElementProperty True El control de elemento de menú nunca se incluye en la vista de contenido del árbol de automatización de la interfaz de usuario.
IsControlElementProperty True El control de elemento de menú se debe incluir siempre en la vista de control del árbol de Automatización de interfaz de usuario.

Patrones de control de Automatización de la interfaz de usuario necesarios

En la tabla siguiente se muestran los patrones de control de automatización de la interfaz de usuario que se deben admitir por los controles de elemento de menú. Para más información sobre los patrones de control, vea UI Automation Control Patterns Overview.

Propiedad de patrón de control Soporte técnico Notas
IExpandCollapseProvider Depende Si el control se puede expandir o contraer, implemente IExpandCollapseProvider.
IInvokeProvider Depende Si el control ejecuta un acción o comando único, implemente IInvokeProvider.
IToggleProvider Depende Si el control representa una opción que se puede activar o desactivar, implemente IToggleProvider.
ISelectionItemProvider Depende Si el control se usa para seleccionar de una lista de opciones entre los elementos de menú, implemente ISelectionItemProvider.

Eventos de automatización de la interfaz de usuario para elemento de menú

En la tabla siguiente se muestran los eventos de automatización de la interfaz de usuario de Microsoft asociados al control de elemento de menú.

Evento Soporte técnico Explicación
InvokedEvent Depende Se debe generar si el control admite el patrón de control Invoke.
Evento cambiado por propiedadToggleStateProperty . Depende Se debe generar si el control admite el patrón de control Toggle.
Evento cambiado por propiedadExpandCollapseStateProperty . Depende Se debe generar si el control admite el patrón de control Expand Collapse.
ElementSelectedEvent Depende Ninguno.

Eventos de Automatización de la interfaz de usuario necesarios

En la siguiente tabla se muestra los eventos de automatización de la interfaz de usuario que se deben admitir por todos los controles de elemento de menú. Para más información sobre los eventos, vea UI Automation Events Overview.

Evento de automatización de la interfaz de usuario Soporte técnico/valor Notas
InvokedEvent Depende None
ElementAddedToSelectionEvent Depende None
ElementRemovedFromSelectionEvent Depende None
ElementSelectedEvent Depende None
Evento cambiado por propiedadBoundingRectangleProperty . Obligatorio None
Evento cambiado por propiedadIsOffscreenProperty . Obligatorio None
Evento cambiado por propiedadIsEnabledProperty . Obligatorio None
Evento cambiado por propiedadExpandCollapseStateProperty . Depende None
Evento cambiado por propiedadToggleStateProperty . Depende None
AutomationFocusChangedEvent Obligatorio None
StructureChangedEvent Obligatorio None

Problemas heredados

Solo se admitirá Toggle Pattern cuando se compruebe el elemento de menú de Win32 y se pueda determinar mediante programación que es necesario admitir Toggle Pattern. Dado que el elemento de menú de Win32 no expone si tiene la capacidad de comprobarse, se admitirá Invoke Pattern cuando el elemento de menú no esté activado. Se realizará una excepción para admitir siempre Invoke Pattern incluso para elementos de menú que solo deberían admitir Toggle Pattern. Esto es para que los clientes no se confundan en que un elemento que admitía Invoke Pattern (cuando el elemento de menú estaba desactivado) ya no admite el patrón cuando se activa.

Consulte también