Partager via


Implémentation du modèle de contrôle d’appel UI Automation

Remarque

Cette documentation est destinée aux développeurs .NET Framework qui souhaitent utiliser les classes UI Automation managées définies dans l’espace de noms System.Windows.Automation. Pour obtenir les informations les plus récentes sur UI Automation, consultez API Windows Automation : UI Automation.

Cette rubrique présente les conventions et recommandations à respecter pour implémenter IInvokeProvider, notamment des informations sur les événements et les propriétés. Les liens vers des références supplémentaires sont répertoriés à la fin de la rubrique.

Le InvokePattern modèle de contrôle est utilisé pour prendre en charge les contrôles qui ne conservent pas l’état lorsqu’ils sont activés, mais plutôt lancer ou effectuer une action unique et non ambiguë. Les contrôles qui conservent l’état, tels que les cases à cocher et les cases d’option, doivent à la place implémenter IToggleProvider et ISelectionItemProvider respectivement. Pour obtenir des exemples de contrôles qui implémentent le modèle de contrôle Invoke, consultez Mappage des modèles de contrôle pour les clients UI Automation.

Directives et conventions de mise en œuvre

Lors de l’implémentation du modèle de contrôle Invoke, notez les instructions et conventions suivantes :

  • Les contrôles implémentent IInvokeProvider si le même comportement n’est pas exposé via un autre fournisseur de modèles de contrôle. Par exemple, si la Invoke méthode d’un contrôle effectue la même action que la ou Collapse la Expand méthode, le contrôle ne doit pas implémenter IInvokeProvider.

  • L’appel d’un contrôle est généralement effectué en cliquant ou en double-cliquant ou en appuyant sur Entrée, un raccourci clavier prédéfini ou une combinaison alternative de séquences de touches.

  • InvokedEvent est déclenché sur un contrôle qui a été activé (en réponse à un contrôle effectuant son action associée). Si possible, l’événement doit être déclenché une fois que le contrôle a terminé l’action et retourné sans blocage. L’événement appelé doit être déclenché avant de traiter la demande Invoke dans les scénarios suivants :

    • Il n’est pas possible ou pratique d’attendre que l’action soit terminée.

    • L’action nécessite une interaction utilisateur.

    • L’action prend beaucoup de temps et entraîne le blocage du client appelant pendant une durée importante.

  • Si l’appel du contrôle a des effets secondaires significatifs, ces effets secondaires doivent être exposés par le biais de la HelpText propriété. Par exemple, même si Invoke elle n’est pas associée à la sélection, Invoke un autre contrôle peut devenir sélectionné.

  • Les effets de pointage (ou de sur-souris) ne constituent généralement pas un événement appelé. Toutefois, les contrôles qui effectuent une action (par opposition à provoquer un effet visuel) en fonction de l’état de pointage doivent prendre en charge le InvokePattern modèle de contrôle.

Remarque

Cette implémentation est considérée comme un problème d’accessibilité si le contrôle ne peut être appelé qu’en raison d’un effet secondaire lié à la souris.

  • L’appel d’un contrôle diffère de la sélection d’un élément. Toutefois, selon le contrôle, l’appel peut entraîner la sélection de l’élément en tant qu’effet secondaire. Par exemple, l’appel d’un élément de liste de documents Microsoft Word dans le dossier Mes documents sélectionne l’élément et ouvre le document.

  • Un élément peut disparaître de l’arborescence UI Automation immédiatement après l’appel. La demande d’informations à partir de l’élément fourni par le rappel d’événement peut échouer en conséquence. L’extraction préalable des informations mises en cache est la solution de contournement recommandée.

  • Les contrôles peuvent implémenter plusieurs modèles de contrôle. Par exemple, le contrôle Couleur de remplissage dans la barre d’outils Microsoft Excel implémente à la fois les InvokePattern modèles de contrôle et les ExpandCollapsePattern modèles de contrôle. ExpandCollapsePattern expose le menu et InvokePattern remplit la sélection active avec la couleur choisie.

Membres requis pour IInvokeProvider

Les propriétés et méthodes suivantes sont requises pour l’implémentation IInvokeProvider.

Membres obligatoires Type de membre Remarques
Invoke méthode Invoke est un appel asynchrone et doit retourner immédiatement sans bloquer.

Ce comportement est particulièrement critique pour les contrôles qui, directement ou indirectement, lancent une boîte de dialogue modale lorsqu’elles sont appelées. Tout client UI Automation qui a initié l’événement reste bloqué jusqu’à ce que la boîte de dialogue modale soit fermée.

Exceptions

Les fournisseurs doivent lever les exceptions suivantes.

Type d’exception État
ElementNotEnabledException Si le contrôle n’est pas activé.

Voir aussi