Tipo de control MenuItem

En este tema se proporciona información sobre la compatibilidad de Microsoft Automatización de la interfaz de usuario con 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 típica de Windows, una barra de menús contiene varios elementos de menú (como Archivo, Editar y 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.

En las secciones siguientes se definen la estructura de árbol 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 elementos de menú en los que el marco o la plataforma de la interfaz de usuario se integra Automatización de la interfaz de usuario compatibilidad con los tipos de control y los patrones de control.

En este tema se incluyen las siguientes secciones.

Estructura de árbol típica

En la tabla siguiente se muestra un control típico y una vista de contenido del árbol de Automatización de la interfaz de usuario que pertenece a los controles de elementos de menú y se describe lo que se puede contener en cada vista. Para más información sobre el árbol de UI Automation, vea Información general del árbol de UI Automation.

Vista de control Vista de contenido
  • MenuItem "Ayuda"
    • Menú (submenú del elemento de menú 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 el elemento de menú ayuda de la barra de menús se ha agregado para ilustrar mejor la estructura.

Para la vista de contenido, menu no está presente en el árbol de Automatización de la interfaz de usuario porque no transmite información significativa al usuario final.

Propiedades pertinentes

En la tabla siguiente se enumeran las propiedades Automatización de la interfaz de usuario cuyo valor o definición es especialmente relevante para el tipo de control MenuItem. Para obtener más información sobre las propiedades de Automatización de la interfaz de usuario, vea Recuperar propiedades de Automatización de la interfaz de usuario Elements.

Propiedad de automatización de interfaz de usuario Valor Notas
UIA_AutomationIdPropertyId Vea las notas. El valor de esta propiedad debe ser único entre todos los elementos del mismo nivel en la vista sin procesar del árbol de Automatización de la interfaz de usuario. Asigne la propiedad AutomationId para un elemento de menú si se sabe que el elemento es coherente en distintas instancias de la interfaz de usuario. Si el elemento de menú se rellena dinámicamente y no es predecible, deje la propiedad AutomationId en blanco.
UIA_BoundingRectanglePropertyId Vea las notas. El rectángulo exterior que contiene el control completo.
UIA_ClickablePointPropertyId Vea las notas. Se admite si hay un rectángulo delimitador. Si no se puede hacer clic en todos los puntos del rectángulo delimitador y el elemento realiza pruebas de posicionamiento especializadas, invalide y proporcione un punto en el que se pueda hacer clic.
UIA_ControlTypePropertyId MenuItem
UIA_IsContentElementPropertyId TRUE El control de elemento de menú siempre se incluye en la vista de contenido del árbol de Automatización de la interfaz de usuario.
UIA_IsControlElementPropertyId TRUE El control de elemento de menú siempre se incluye en la vista de control del árbol de Automatización de la interfaz de usuario.
UIA_IsKeyboardFocusablePropertyId Vea las notas. Si el control puede recibir el foco del teclado, debe admitir esta propiedad.
UIA_LocalizedControlTypePropertyId Vea las notas. Cadena localizada correspondiente al tipo de control MenuItem . El valor predeterminado es "elemento de menú" para en-US o inglés (Estados Unidos).
UIA_NamePropertyId Vea las notas. El nombre del control de elemento de menú es el texto que se usa para etiquetarlo.

 

Patrones de control 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.

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 una sola acción o comando, implemente IInvokeProvider.
ISelectionItemProvider Depende Si el control se usa para seleccionar una lista de opciones entre los elementos de menú, implemente ISelectionItemProvider.
IToggleProvider Depende Si el control representa una opción que se puede activar o desactivar, implemente IToggleProvider.

 

Eventos necesarios

En la tabla siguiente se enumeran los eventos Automatización de la interfaz de usuario que los controles de elemento de menú son necesarios para admitir. Para más información sobre los eventos, vea UI Automation Events Overview.

Evento de Automatización de la interfaz de usuario Notas
UIA_AutomationFocusChangedEventId
UIA_BoundingRectanglePropertyId evento de cambio de propiedad.
UIA_ExpandCollapseExpandCollapseStatePropertyId evento de cambio de propiedad. Si el control admite el patrón de control ExpandCollapse , debe admitir este evento.
UIA_Invoke_InvokedEventId Si el control admite el patrón de control Invoke , debe admitir este evento.
UIA_IsEnabledPropertyId evento de cambio de propiedad. Si el control admite la propiedad IsEnabled , debe admitir este evento.
UIA_IsOffscreenPropertyId evento de cambio de propiedad. Si el control admite la propiedad IsOffscreen , debe admitir este evento.
UIA_SelectionItem_ElementAddedToSelectionEventId Si el control admite el patrón de control SelectionItem , debe admitir este evento.
UIA_SelectionItem_ElementRemovedFromSelectionEventId Si el control admite el patrón de control SelectionItem , debe admitir este evento.
UIA_SelectionItem_ElementSelectedEventId Si el control admite el patrón de control SelectionItem , debe admitir este evento.
UIA_StructureChangedEventId
UIA_ToggleToggleStatePropertyId evento de cambio de propiedad. Si el control admite el patrón de control Toggle , debe admitir este evento.

 

Problemas heredados

Para los elementos de menú de Microsoft Win32, el patrón de control Alternar solo se admite cuando se activa un elemento de menú y es posible determinar mediante programación si se requiere compatibilidad con el patrón de control Alternar. Dado que un elemento de menú Win32 no expone si se puede comprobar, se admite el patrón de control Invocar cuando el elemento de menú no está activado. El patrón de control Invoke siempre se admite, incluso para los elementos de menú que solo son necesarios para admitir el patrón de control Toggle. Esto es así que los clientes no se confunden cuando un elemento de menú que admitía el patrón de control Invoke (cuando el elemento de menú no estaba activado) ya no admite ese patrón cuando se activa.

Conceptual

Información general sobre tipos de control de UI Automation

Información general sobre UI Automation