Share via


Compatibilidad de UI Automation para el tipo de control List

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 UI Automation con el tipo de control List. En UI Automation, un tipo de control es un conjunto de condiciones que un control debe cumplir para poder usar la propiedad ControlTypeProperty. Las condiciones incluyen directrices específicas para la estructura de árbol de UI Automation, los valores de propiedad de UI Automation y los patrones de control.

El tipo de control List ofrece una manera de organizar uno o varios grupos planos de elementos y permite al usuario seleccionar uno o varios de esos elementos. El tipo de control List tiene una restricción flexible respecto a los tipos de elementos secundarios que puede contener. Esto permite que los proveedores de Automatización de la interfaz de usuario admitan un elemento conocido para los contenedores de selección.

Los requisitos de automatización de la interfaz de usuario de las secciones siguientes se aplican a todos los controles que implementan el tipo de control List, ya sea Windows Presentation Foundation (WPF), Win32 o Windows Forms. Los controles de contenedor de List son un ejemplo de controles que implementan el tipo de control List.

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

En la tabla siguiente se describen las dos vistas del árbol de automatización de la interfaz de usuario que pertenecen a los controles de lista y se describe lo que puede incluirse en cada vista. La vista de control solo contiene elementos que son controles y la vista de contenido quita información redundante del árbol. Por ejemplo, un control de texto utilizado para etiquetar un cuadro combinado se expondrá como el elemento ComboBox NameProperty. Como ya se expone el control de texto de esta manera a través de la vista de control, no es necesario que se exponga dos veces; por lo tanto, se quita de la vista de contenido. 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
Contiene los elementos que corresponden a los controles. Quita la información redundante del árbol para que las tecnologías de asistencia trabajen con el conjunto más pequeño de información significativa para el usuario final.
List

- DataItem (0 o más)
- ListItem (0 o más)
- Group (0 o más)
- ScrollBar (0, 1 o 2)
List

- DataItem (0 o más)
- ListItem (0 o más)
- Group (0 o más)

La vista de control de un control que implementa el tipo de control List (por ejemplo, un control de lista) consta de:

  • Cero o más elementos dentro del control de lista (los elementos pueden basarse en los tipos de control de elemento List o Data).

  • Cero o más controles de grupo dentro de un control de lista.

  • Cero, uno o dos controles de barra de desplazamiento.

La vista de contenido de un control que implementa el tipo de control List (por ejemplo, un control de lista) consta de:

  • Cero o más elementos dentro del control de lista (los elementos pueden basarse en los tipos de control de elemento List o Data).

  • Cero o más grupos dentro del control de lista.

Un control de lista no debe disponer de elementos que tengan una relación jerárquica que no sea estar agrupados. Si los elementos tienen elementos secundarios en el árbol de automatización de la interfaz de usuario, el contenedor de lista debe basarse en el tipo de control Tree.

Los elementos seleccionables dentro del control de lista estarán disponibles en los descendientes del árbol de automatización de la interfaz de usuario del control de lista. Todos los elementos dentro del control de lista deben pertenecer al mismo grupo de selección. Los elementos seleccionables de la lista se deben exponer como tipos de control ListItem (en lugar de DataItem).

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 lista. Para más información sobre las propiedades de automatización de la interfaz de usuario, vea Propiedades de Automatización de la interfaz de usuario Properties para clientes.

Propiedad de automatización de interfaz de usuario Valor Notas
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. Si el control de lista tiene un punto interactivo (un punto en el que puede hacer clic para que la lista reciba el foco), dicho punto se debe exponer a través de esta propiedad.

Si el valor de la propiedad IsOffScreen es true, se generará la excepción NoClickablePointException.
IsKeyboardFocusableProperty Vea las notas. Si el control puede recibir el foco del teclado, debe admitir esta propiedad.
NameProperty Vea las notas. El valor de propiedad Name de un control de lista debe indicar la categoría de opciones de la que se solicita que el usuario seleccione. Esta propiedad suele recibir su nombre de una etiqueta de texto estático. Si no hay ninguna etiqueta de texto estático, el desarrollador de aplicaciones debe exponer un valor para la propiedad Name.

La única vez que esta propiedad no es necesaria para los controles de lista es si el control se utiliza dentro del subárbol de otro control.
LabeledByProperty Vea las notas. Si hay una etiqueta de texto estático, esta propiedad debe exponer una referencia a ese control.
ControlTypeProperty List Este valor es el mismo para todos los marcos de trabajo de la interfaz de usuario.
LocalizedControlTypeProperty "lista" Cadena localizada que corresponde al tipo de control List.
IsContentElementProperty True El control de lista siempre se incluye en la vista de contenido del árbol de Automatización de la interfaz de usuario.
IsControlElementProperty True El control de lista siempre se incluye en la vista de control del árbol de Automatización de la interfaz de usuario.
IsKeyboardFocusableProperty True Si el contenedor puede aceptar la entrada de teclado, este valor de propiedad debe ser verdadero.
HelpTextProperty Vea las notas. El texto de ayuda para los controles de lista debe explicar por qué se solicita al usuario que realice una selección de una lista de opciones. Por ejemplo, "Seleccione un elemento de esta lista para establecer la resolución de pantalla del monitor".

Propiedades y 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 lista. Para más información sobre los patrones de control, vea UI Automation Control Patterns Overview.

Patrón de control/Propiedad de patrón Soporte técnico/valor Notas
ISelectionProvider Obligatorio Todos los controles que admiten el tipo de control List deben implementar ISelectionProvider cuando se mantiene el estado de la selección entre los elementos contenidos en el control. Si los elementos dentro del contenedor no son seleccionables, debe utilizarse el tipo de control Group.
IsSelectionRequired Depende Los controles List no siempre requieren que se seleccione un elemento.
CanSelectMultiple Depende Los controles List pueden ser contenedores de selección única o múltiple.
IScrollProvider Depende Implemente este patrón de control si el desplazamiento entre los elementos del contenedor es posible.
IGridProvider Depende Implemente este patrón si la navegación en cuadrícula debe estar disponible de elemento en elemento.
IMultipleViewProvider Depende Implemente este patrón de control si el control puede admitir varias vistas de los elementos del contenedor.
ITableProvider Nunca ITableProvider nunca se admite para el tipo de control List. Si el control debe admitir este patrón de control, el control debe basarse en el tipo de control Data Grid.

Eventos de Automatización de la interfaz de usuario necesarios

En la tabla siguiente se muestran los eventos de UI Automation que se deben admitir por parte de todos los controles de lista. 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
InvalidatedEvent Depende None
LayoutInvalidatedEvent Depende None
Evento cambiado por propiedadBoundingRectangleProperty . Obligatorio None
Evento cambiado por propiedadIsOffscreenProperty . Obligatorio None
Evento cambiado por propiedadIsEnabledProperty . Obligatorio None
Evento cambiado por propiedadCurrentViewProperty . Depende None
Evento cambiado por propiedadHorizontallyScrollableProperty . Depende None
Evento cambiado por propiedadHorizontalScrollPercentProperty . Depende None
Evento cambiado por propiedadHorizontalViewSizeProperty . Depende None
Evento cambiado por propiedadVerticalScrollPercentProperty . Depende None
Evento cambiado por propiedadVerticallyScrollableProperty . Depende None
Evento cambiado por propiedadVerticalViewSizeProperty . Depende None
AutomationFocusChangedEvent Obligatorio None
StructureChangedEvent Obligatorio None

Consulte también