Tipo de control MenuBar

En este tema se proporciona información sobre la compatibilidad de Microsoft Automatización de la interfaz de usuario con el tipo de control MenuBar.

Los controles de barra de menús son un ejemplo de controles que implementan el tipo de control MenuBar . Las barras de menús proporcionan un medio para que los usuarios activen los comandos y las opciones contenidos en una aplicación.

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 MenuBar. Los requisitos de Automatización de la interfaz de usuario se aplican a todos los controles de la barra de menús en los que el marco o plataforma de la interfaz de usuario 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 la barra de menús 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
  • MenuBar
    • MenuItem (1 o más)
    • Otros controles (0 o varios)
  • No aplicable
    • MenuItem (1 o más)
    • Otros controles (0 o varios)

 

Un control de barra de menús siempre aparece en la vista de control, pero no en la vista de contenido porque normalmente no transmite información significativa al usuario final (a menos que la aplicación contenga más de una barra de menús).

Automatización de la interfaz de usuario los clientes pueden escuchar el evento UIA_MenuModeStartEventId para asegurarse de que se les notifica de forma coherente cuando la interfaz de usuario entra en modo de menú. Cuando la aplicación está en modo de menú, toda la entrada del teclado se puede capturar para la navegación del menú (por ejemplo, escribir 's' podría invocar el menú Guardar en lugar de escribir el carácter en el área cliente de la aplicación). El evento UIA_MenuModeStartEventId debe preceder al primer evento de UIA_MenuOpenedEventId para garantizar la coherencia lógica. El evento UIA_MenuModeEndEventId sigue el último evento de UIA_MenuClosedEventId . Hacer clic en un elemento de menú también puede desencadenar inmediatamente el evento UIA_MenuModeStartEventId , seguido de un evento de UIA_MenuOpenedEventId .

Un control de barra de menús puede contener otros controles, como editar controles y cuadros combinados, dentro de su estructura. Estos controles adicionales corresponden a la categoría "otros controles" que se indica anteriormente en las vistas de control y de contenido.

Propiedades relevantes

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 MenuBar. 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_AcceleratorKeyPropertyId NULL Normalmente, las barras de menú no tienen teclas de aceleración.
UIA_AccessKeyPropertyId "Alt" Al presionar la tecla ALT, normalmente, debería centrarse en la barra de menús de la aplicación.
UIA_BoundingRectanglePropertyId Vea las notas. El valor que expone esta propiedad debe incluir todos los controles que se contienen dentro de ella.
UIA_ControlTypePropertyId MenuBar
UIA_IsContentElementPropertyId FALSE El control de barra de menús no se incluye en la vista de contenido del árbol de Automatización de la interfaz de usuario.
UIA_IsControlElementPropertyId TRUE La barra de control de menú siempre se incluye en la vista de control del árbol de UI Automation.
UIA_IsKeyboardFocusablePropertyId TRUE Los controles de barra de menús pueden recibir el foco del teclado porque los controles que contienen pueden recibir el foco de teclado.
UIA_IsOffscreenPropertyId Vea las notas. El valor de esta propiedad depende de si el control es visible en la pantalla.
UIA_LabeledByPropertyId NULL Normalmente, los controles de la barra de menús no tienen una etiqueta.
UIA_LocalizedControlTypePropertyId Vea las notas. Cadena localizada correspondiente al tipo de control MenuBar . El valor predeterminado es "barra de menús" para en-US o inglés (Estados Unidos).
UIA_NamePropertyId Vea las notas. El control de barra de menús no necesita un nombre a menos que una aplicación tenga más de una barra de menús. Si hay más de una barra de menús en una aplicación, use esta propiedad para exponer nombres distintivos, como "Formato" o "Esquematización".
UIA_OrientationPropertyId Depende Esta propiedad expone si el control de barra de menús es horizontal o vertical.

 

Patrones de control necesarios

En la tabla siguiente se muestran los patrones de control de Automatización de la interfaz de usuario requeridos para ser admitidos por los controles de la barra 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, debe implementar el patrón de control ExpandCollapse .
IDockProvider Depende Si el control se puede acoplar a diferentes partes de la pantalla, debe implementar el patrón de control Dock .
ITransformProvider Depende Si el control se puede cambiar de tamaño, girar o mover, debe implementar el patrón de control Transformar .

 

Eventos necesarios

En la tabla siguiente se enumeran los eventos Automatización de la interfaz de usuario que los controles de barra de menús 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_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_StructureChangedEventId

 

Conceptual

Información general sobre tipos de control de UI Automation

Información general sobre UI Automation