Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Nota:
Esta documentación está pensada para desarrolladores de .NET Framework que desean usar las clases de automatización de la interfaz de usuario administradas definidas en el espacio de nombres System.Windows.Automation. Para obtener la información más reciente sobre la automatización de la interfaz de usuario, consulte API de Windows Automation: Automatización de la interfaz de usuario.
En este tema se proporciona información sobre la compatibilidad de Automatización de la interfaz de usuario de Microsoft para el tipo de control DataItem. En automatización de la interfaz de usuario, un tipo de control es un conjunto de condiciones que un control debe cumplir para poder usar la ControlTypeProperty propiedad . Las condiciones incluyen directrices específicas para la estructura de árbol de UI Automation , los valores de propiedad de esta y los patrones de control.
Una entrada de una lista de contactos es un ejemplo de un control de elemento de datos. Un control de elemento de datos contiene información que es de interés para un usuario final. Es más complicado que el elemento de lista simple porque contiene información más completa.
En las secciones siguientes se define 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 DataItem. Los requisitos de automatización de la interfaz de usuario se aplican a todos los controles de elementos de datos, 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 muestra 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 elementos de datos y se describe lo que se puede contener en cada vista. Para obtener más información sobre el árbol de automatización de la interfaz de usuario, consulte Introducción al árbol de automatización de la interfaz de usuario.
| Árbol de automatización de la interfaz de usuario: vista de control | Árbol de automatización de la interfaz de usuario: vista de contenido |
|---|---|
| DataItem - Varía (0 o más; se puede estructurar en la jerarquía) |
DataItem - Varía (0 o más; se puede estructurar en la jerarquía) |
Un elemento de elemento de datos de una cuadrícula de datos puede hospedar una variedad de objetos, incluida otra capa de elementos de datos o elementos de cuadrícula específicos, como texto, imágenes o controles de edición. Si el elemento de elemento de datos tiene un rol de objeto específico, el elemento debe exponerse como un tipo de control específico; por ejemplo, un tipo de control ListItem para un elemento de datos seleccionable en la cuadrícula.
Propiedades de Automatización de la interfaz de usuario necesarias
En la tabla siguiente se enumeran las propiedades cuyo valor o definición es especialmente relevante para los controles de elementos de datos. Para obtener más información sobre las propiedades de automatización de la interfaz de usuario, consulte Propiedades de automatización de la interfaz de usuario para clientes.
| Propiedad | Importancia | 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. | 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. |
| ControlTypeProperty | DataItem | Este valor es el mismo para todos los marcos de trabajo de la interfaz de usuario. |
| IsContentElementProperty | Cierto | El control de elemento de datos siempre debe ser contenido. |
| IsControlElementProperty | Cierto | El control de elemento de datos siempre debe ser un control . |
| IsKeyboardFocusableProperty | Vea las notas. | Si el control puede recibir el foco del teclado, debe admitir esta propiedad. |
| ItemStatusProperty | Vea las notas. | Si el control contiene el estado que se actualiza dinámicamente, esta propiedad debe admitirse para que una tecnología de asistencia pueda recibir actualizaciones cuando cambie el estado del elemento. |
| ItemTypeProperty | Vea las notas. | Este es el valor de cadena que transmite al usuario final el objeto subyacente que representa el elemento. Algunos ejemplos son "Archivo multimedia" o "Contacto". |
| LabeledByProperty | Null |
Los controles de elementos de datos no tienen una etiqueta de texto estático. |
| LocalizedControlTypeProperty | "elemento de datos" | Cadena localizada que corresponde al tipo de control DataItem. |
| NameProperty | Vea las notas. | El control de elemento de datos siempre contiene un elemento de texto principal que se relaciona con lo que el usuario asociaría como el identificador más semántico del elemento. |
Patrones de control de automatización de la interfaz de usuario necesarios
En la tabla siguiente se enumeran los patrones de control de Automatización de la interfaz de usuario de Microsoft necesarios para ser compatibles con todos los controles de elementos de datos. Para más información sobre los patrones de control, vea UI Automation Control Patterns Overview.
| Patrón de control | Apoyo | Notas |
|---|---|---|
| IExpandCollapseProvider | Depende | Si el elemento de datos se puede expandir o contraer para mostrar y ocultar información, se debe admitir el patrón ExpandCollapse. |
| IGridItemProvider | Depende | Los elementos de datos serán compatibles con el patrón de elemento de cuadrícula cuando haya disponible una colección de elementos de datos dentro de un contenedor navegable espacialmente de un elemento a otro. |
| IScrollItemProvider | Depende | Todos los elementos de datos admiten la capacidad de desplazamiento para verlos con el patrón ScrollItem cuando su contenedor de datos tiene más elementos de los que caben en la pantalla. |
| ISelectionItemProvider | Sí | Todos los elementos de datos deben admitir el patrón Elemento de selección para indicar cuándo se selecciona el elemento. |
| ITableItemProvider | Depende | Si el elemento de datos se encuentra dentro de un tipo de control Data Grid, admitirá este patrón. |
| IToggleProvider | Depende | Si el elemento de datos contiene un estado que se puede recorrer cíclicamente. |
| IValueProvider | Depende | Si el texto principal del elemento de datos es editable, se debe admitir el patrón Value. |
Trabajar con elementos de datos en listas grandes
Las listas grandes suelen ser datos virtualizados en marcos de interfaz de usuario para ayudar en el rendimiento. Debido a esto, un cliente de Automatización de la interfaz de usuario no puede usar la característica de consulta de Automatización de la interfaz de usuario para extraer el contenido del árbol completo de la misma manera que puede en otros contenedores de elementos. Un cliente debe desplazar el elemento a la vista (o expandir el control para mostrar todas las opciones valiosas) antes de acceder al conjunto completo de información desde el elemento de datos.
Al llamar a SetFocus en el elemento de Automatización de la interfaz de usuario del elemento de datos, el caso de Microsoft Windows Explorer devolverá correctamente y el foco se establecerá en la edición dentro del subárbol del elemento de datos.
Eventos de Automatización de la interfaz de usuario necesarios
En la tabla siguiente se enumeran los eventos de automatización de la interfaz de usuario necesarios para ser compatibles con todos los controles de elementos de datos. Para obtener más información sobre los eventos, consulte UI Automation Events Overview.
| Evento de Automatización de la interfaz de usuario | Apoyo | Notas |
|---|---|---|
| AutomationFocusChangedEvent | Obligatorio | Ninguno |
| Evento cambiado por propiedadBoundingRectangleProperty . | Obligatorio | Ninguno |
| Evento cambiado por propiedadIsEnabledProperty . | Obligatorio | Ninguno |
| Evento cambiado por propiedadIsOffscreenProperty . | Obligatorio | Ninguno |
| Evento cambiado por propiedadNameProperty . | Obligatorio | Ninguno |
| StructureChangedEvent | Obligatorio | Ninguno |
| InvokedEvent | Depende | Ninguno |
| Evento cambiado por propiedadExpandCollapseStateProperty . | Depende | Ninguno |
| ElementAddedToSelectionEvent | Obligatorio | Ninguno |
| ElementRemovedFromSelectionEvent | Obligatorio | Ninguno |
| ElementSelectedEvent | Obligatorio | Ninguno |
| Evento cambiado por propiedadToggleStateProperty . | Depende | Ninguno |
| Evento cambiado por propiedadValueProperty . | Depende | Ninguno |
Ejemplo de tipo de control DataItem
En la imagen siguiente se muestra un tipo de control DataItem en un control List View con compatibilidad con información completa para las columnas.
A continuación se muestra la vista de control y la vista de contenido del árbol de automatización de la interfaz de usuario que pertenece al control de elemento de datos. Los patrones de control para cada elemento de automatización se muestran entre paréntesis. El grupo "Contoso" también forma parte de la cuadrícula del control de host Data Grid.
| Árbol de automatización de la interfaz de usuario: vista de control | Árbol de automatización de la interfaz de usuario: vista de contenido |
|---|---|
| - Grupo "Contoso" (Tabla, Cuadrícula) - DataItem "Accounts Receivable.doc" (TableItem, GridItem, SelectionItem, Invoke) - Imagen "Cuentas por cobrar.doc" - Editar "Nombre" (Elemento de tabla, Elemento de cuadrícula, Valor "Cuentas por Cobrar.doc") - Editar "Fecha modificada" (TableItem, GridItem, Value "8/25/2006 3:29 PM") - Editar "Size" (GridItem, TableItem, Value "11.0 KB) - DataItem "Accounts Payable.doc" (TableItem, GridItem, SelectionItem, Invoke) - ... |
- Grupo "Contoso" (Tabla, Cuadrícula) - DataItem "Accounts Receivable.doc" (TableItem, GridItem, SelectionItem, Invoke) - Imagen "Cuentas por cobrar.doc" - Editar "Nombre" (Elemento de tabla, Elemento de cuadrícula, Valor "Cuentas por Cobrar.doc") - Editar "Fecha modificada" (TableItem, GridItem, Value "8/25/2006 3:29 PM") - Editar "Size" (GridItem, TableItem, Value "11.0 KB) - DataItem "Accounts Payable.doc" (TableItem, GridItem, SelectionItem, Invoke) - … |
Si una cuadrícula representa una lista de elementos seleccionables, los elementos de interfaz de usuario correspondientes se pueden exponer con el tipo de control ListItem en lugar del tipo de control DataItem. En el ejemplo anterior, los elementos DataItem ("Accounts Receivable.doc" y "Accounts Payable.doc") en el grupo ("Contoso") se pueden mejorar mostrándolos como tipos de control ListItem, ya que ese tipo admite el patrón de control SelectionItem.