Compartir a través de


Implementar el patrón de control Invoke de UI Automation

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 presentan las directrices y convenciones de implementación de IInvokeProvider, incluida la información acerca de eventos y propiedades. Los vínculos a referencias adicionales se enumeran al final del tema.

El patrón de control InvokePattern se utiliza para admitir controles que no mantienen el estado cuando se activan, sino que inician o realizan un acción única, inequívoca. Los controles que sí mantienen el estado, tales como las casillas y los botones de radio, deben implementar en su lugar IToggleProvider y ISelectionItemProvider respectivamente. Para ver ejemplos de controles que implementan el patrón de control Invoke, vea Asignación de patrones de controles para clientes de UI Automation.

Este tema contiene las secciones siguientes.

  • Directrices y convenciones de implementación
  • Miembros necesarios para IInvokeProvider
  • Excepciones
  • Temas relacionados

Directrices y convenciones de implementación

Al implementar el patrón de control Invoke, tenga en cuenta las directrices y convenciones siguientes:

  • Los controles implementan IInvokeProvider si el mismo comportamiento no se expone a través de otro proveedor del patrón de control. Por ejemplo, si el método Invoke de un control realiza la misma acción que el método Expand o Collapse, el control no debe implementar IInvokeProvider.

  • La invocación de un control se realiza generalmente haciendo clic o doble clic, presionando ENTRAR, con un método abreviado de teclado predefinido o mediante alguna combinación alternativa de teclas.

  • InvokedEvent se produce en un control que se ha activado (como respuesta a un control que ejecuta su acción asociada). Si es posible, el evento debe producirse después de que el control haya completado la acción y haya devuelto sin bloquearse. El evento invocado debe producirse antes de atender a la solicitud de invocación en los escenarios siguientes:

    • No es posible ni práctico esperar a que la acción se complete.

    • La acción requiere la interacción con el usuario.

    • La acción requiere mucho tiempo y hace que el cliente de la llamada se bloquee durante un periodo de tiempo significativo.

  • Si invocar el control tiene efectos secundarios significativos, esos efectos secundarios se deben exponer a través de la propiedad HelpText. Por ejemplo, aunque Invoke no esté asociado a la selección, Invoke puede provocar que se seleccione otro control.

  • Los efectos de activación (o de desplazamiento del mouse por encima) generalmente no constituyen un evento invocado. Sin embargo, los controles que realizan una acción (en lugar de producir un efecto visual) basados en el estado de activación deben admitir el patrón de control InvokePattern.

NotaNota

Esta implementación se considera un problema de accesibilidad si el control solamente se puede invocar como resultado de un efecto secundario relacionado con mouse.

  • Invocar un control es diferente de seleccionar un elemento. Sin embargo, según el control, invocarlo puede provocar que el elemento se seleccione como efecto secundario. Por ejemplo, al invocar un elemento de lista de documentos de Microsoft Word en la carpeta Mis documentos se selecciona el elemento y se abre el documento.

  • Un elemento puede desaparecer del árbol UI Automation inmediatamente después de ser invocado. La solicitud de información del elemento proporcionada por la devolución de llamada del evento puede producirse, como resultado. La solución alternativa recomendada es capturar previamente la información en memoria caché.

  • Los controles pueden implementar varios patrones de control. Por ejemplo, el control Color de relleno de la barra de herramientas de Microsoft Excel implementa los patrones de control InvokePattern y ExpandCollapsePattern. ExpandCollapsePattern expone el menú y el objeto InvokePattern llena la selección activa con el color elegido.

Miembros necesarios para IInvokeProvider

Los siguientes métodos y propiedades son necesarios para implementar IInvokeProvider.

Miembros necesarios

Tipo de miembro

Notas

Invoke

método

Invoke es una llamada asincrónica y debe volver inmediatamente sin que se bloquee.

Este comportamiento es particularmente crítico para los controles que, directa o indirectamente, inician un cuadro de diálogo modal cuando se les llama. El cliente de automatización de interfaz de usuario que instigue el evento permanecerá bloqueado hasta que se cierre el cuadro de diálogo modal.

Excepciones

Los proveedores deben iniciar las excepciones siguientes.

Tipo de excepción

Condition

ElementNotEnabledException

Si el control no está habilitado.

Vea también

Tareas

Patrones de control compatibles en un proveedor de UI Automation

Llamar a un control utilizando la UI Automation

Utilizar el almacenamiento en caché en la UI Automation

Conceptos

Información general acerca de los patrones de control de automatización de la interfaz de usuario

Patrones de controles de UI Automation para clientes

Información general sobre el árbol de la UI Automation