Compartir a través de


Compatibilidad de UI Automation para el tipo de control List

NotaNota

Esta documentación está dirigida a desarrolladores de .NET Framework que desean usar las clases administradas de UI Automation definidas en el espacio de nombres System.Windows.Automation.Para obtener información actualizada sobre UI Automation, vea Windows Automation API: UI Automation.

En este tema se proporciona información sobre la compatibilidad de la UI Automation con el tipo de control List. En UI Automation, un tipo de control es un conjunto de condiciones que debe cumplir un control para utilizar la propiedad ControlTypeProperty. Las condiciones incluyen instrucciones específicas para la estructura de árbol de UI Automation, los valores de propiedades de UI Automation y los patrones de control.

El tipo de control List proporciona una manera de organizar uno o varios grupos planos de elementos y permite que el usuario seleccione uno o varios de esos elementos. El tipo de control List tiene una restricción no estricta que afecta 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 UI Automation que se indican en 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 contenedores de listas son un ejemplo de controles que implementan el tipo de control List.

Este tema contiene las secciones siguientes.

  • Estructura de árbol de automatización de la interfaz de usuario obligatoria
  • Propiedades obligatorias de automatización de la interfaz de usuario
  • Patrones de control y propiedades obligatorios de automatización de la interfaz de usuario
  • Eventos de automatización de la interfaz de usuario obligatorios
  • Temas relacionados

Estructura de árbol de automatización de la interfaz de usuario obligatoria

En la tabla siguiente se describen las dos vistas del árbol de UI Automation que corresponde a los controles de lista; en ella se indica lo que puede contener cada vista. La vista de control sólo contiene elementos que son controles; por su parte, la vista de contenido quita la información redundante del árbol. Por ejemplo, un control de texto utilizado para etiquetar un cuadro combinado se expondrá como ComboBox NameProperty. Dado que el control de texto ya se expone de esta manera en la vista de control, es innecesario exponerlo dos veces; por consiguiente se quita de la vista de contenido. Para obtener más información acerca del árbol de UI Automation, consulte Información general sobre el árbol de la UI Automation.

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 ayuda 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 ó 2)

Lista

  • 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 (como un control de lista) está compuesta de:

  • Cero o más elementos dentro del control de lista (los elementos pueden estar basados en los tipos de control ListItem o DataItem)

  • 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 (como un control de lista) está compuesta de:

  • Cero o más elementos dentro del control de lista (los elementos pueden estar basados en los tipos de control ListItem o DataItem)

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

Un control de lista no debe tener elementos que tengan una relación jerárquica distinta de la de agruparse. Si los elementos tienen elementos secundarios en el árbol de UI Automation, el contenedor de lista debería estar basado en el tipo de control Tree.

Los elementos seleccionables del control de lista estarán disponibles a partir de los descendientes en el árbol de UI Automation del control de lista. Todos los elementos del control de lista deben pertenecer al mismo grupo de selección. Los elementos seleccionables en la lista se deberían exponer como tipos de control ListItem (en lugar de DataItem).

Propiedades obligatorias de automatización de la interfaz de usuario

En la tabla siguiente se muestra la lista de propiedades de UI Automation cuyo valor o definición es especialmente relevante para los controles de lista. Para obtener más información acerca de las propiedades de UI Automation, vea Propiedades de UI Automation para clientes.

Propiedad de UI Automation

Valor

Notas

AutomationIdProperty

Vea las notas.

El valor de esta propiedad debe ser único en todos los controles de una aplicación.

BoundingRectangleProperty

Consulte las notas.

El rectángulo más externo que contiene el control completo.

ClickablePointProperty

Consulte las notas.

Si el control de lista tiene un punto donde hacer clic (un punto en el que se puede hacer clic para cambiar el foco a la lista), ese punto se debe exponer mediante esta propiedad.

Si el valor de la propiedad IsOffScreen es True, se inicia la excepción NoClickablePointException.

IsKeyboardFocusableProperty

Consulte las notas.

Si el control puede recibir el foco del teclado, debe admitir esta propiedad.

NameProperty

Consulte las notas.

El valor de la propiedad Name de un control de lista debe indicar la categoría de opciones entre las que se pide al usuario que realice su selección. Esta propiedad suele recibir su nombre de una etiqueta de texto estática. Si no hay una etiqueta de texto estática, el programador de la aplicación debe exponer un valor para la propiedad Name.

El único caso en que no se requiere esta propiedad para los controles de lista es aquél en que el control se utiliza dentro del árbol secundario de otro control.

LabeledByProperty

Consulte las notas.

Si hay una etiqueta de texto estática, esta propiedad debe exponer una referencia a ese control.

ControlTypeProperty

List

Este valor es el mismo para todos los marcos de trabajo de interfaz de usuario.

LocalizedControlTypeProperty

"list"

Cadena adaptada que corresponde al tipo de control List.

IsContentElementProperty

True

El control de lista siempre se incluye en la vista de contenido del árbol de UI Automation.

IsControlElementProperty

True

El control de lista siempre se incluye en la vista de control del árbol de UI Automation.

IsKeyboardFocusableProperty

True

Si el contenedor puede aceptar las acciones del teclado, el valor de esta propiedad debe ser True.

HelpTextProperty

Consulte las notas.

El texto de Ayuda de los controles de lista debe explicar por qué se solicita al usuario que elija una opción de una lista. Por ejemplo, "Seleccione un elemento de esta lista para establecer la resolución de pantalla del monitor".

Patrones de control y propiedades obligatorios de automatización de la interfaz de usuario

En la tabla siguiente se muestra una lista de los patrones de control de UI Automation con los que deben ser compatibles todos los controles de lista. Para obtener más información acerca de los patrones de control, vea Información general acerca de los patrones de control de automatización de la interfaz de usuario.

Patrón de control/Propiedad de patrón

Compatibilidad/valor

Notas

ISelectionProvider

Obligatorio

Todos los controles que admiten el tipo de control List deben implementar ISelectionProvider cuando un estado de selección se mantiene entre los elementos contenidos en el control. Si los elementos del contenedor no son seleccionables, se debe utilizar el tipo de control Group.

IsSelectionRequired

Depende

Los controles de lista no siempre exigen que se seleccione un elemento.

CanSelectMultiple

Depende

Los controles de lista pueden ser contenedores de selección única o múltiple.

IScrollProvider

Depende

Implemente este patrón de control si los elementos del contenedor se pueden desplazar.

IGridProvider

Depende

Implemente este patrón cuando se necesite que la navegación por la cuadrícula esté disponible individualmente para cada 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 deberá basarse en el tipo de control DataGrid.

Eventos de automatización de la interfaz de usuario obligatorios

En la tabla siguiente se muestra una lista de los eventos de UI Automation con los que deben ser compatibles todos los controles de lista. Para obtener más información sobre los eventos, vea Información general sobre eventos de UI Automation.

Evento de UI Automation

Compatibilidad/valor

Notas

InvalidatedEvent

Depende

Ninguno

LayoutInvalidatedEvent

Depende

Ninguno

Evento de cambio de propiedad de BoundingRectangleProperty.

Obligatorio

Ninguno

Evento de cambio de propiedad de IsOffscreenProperty.

Necesario

Ninguno

Evento de cambio de propiedad de IsEnabledProperty.

Necesario

Ninguno

Evento de cambio de propiedad de CurrentViewProperty.

Depende

Ninguno

Evento de cambio de propiedad de HorizontallyScrollableProperty.

Depende

Ninguno

Evento de cambio de propiedad de HorizontalScrollPercentProperty.

Depende

Ninguno

Evento de cambio de propiedad de HorizontalViewSizeProperty.

Depende

Ninguno

Evento de cambio de propiedad de VerticalScrollPercentProperty.

Depende

Ninguno

Evento de cambio de propiedad de VerticallyScrollableProperty.

Depende

Ninguno

Evento de cambio de propiedad de VerticalViewSizeProperty.

Depende

Ninguno

AutomationFocusChangedEvent

Obligatorio

Ninguno

StructureChangedEvent

Obligatorio

Ninguno

Vea también

Referencia

List

Conceptos

Información general sobre tipos de control de UI Automation

Información general sobre UI Automation