Partager via


Modèles de contrôle UI Automation pour les clients

Notes

Cette documentation s’adresse 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 dernières informations sur UI Automation, consultez API Windows Automation : UI Automation.

Cette vue d’ensemble présente des modèles de contrôle pour les clients UI Automation. Elle inclut des informations sur la façon dont un client UI Automation peut utiliser des modèles de contrôle pour accéder aux informations sur l’interface utilisateur.

Les modèles de contrôle permettent de catégoriser et d'exposer les fonctionnalités d'un contrôle, indépendamment du type de contrôle ou de l'apparence du contrôle. Les clients UI Automation peuvent examiner un AutomationElement pour déterminer les modèles de contrôle pris en charge et s’assurer du comportement du contrôle.

Pour obtenir une liste complète des modèles de contrôle, consultez Vue d’ensemble des modèles de contrôle UI Automation.

Obtention de modèles de contrôle

Les clients récupèrent un modèle de contrôle d'un AutomationElement en appelant AutomationElement.GetCachedPattern ou AutomationElement.GetCurrentPattern.

Les clients peuvent utiliser la méthode GetSupportedPatterns ou une propriété IsPatternAvailable individuelle (par exemple, IsTextPatternAvailableProperty) pour déterminer si un modèle ou un groupe de modèles est pris en charge sur AutomationElement. Toutefois, il est plus efficace d'essayer d'obtenir le modèle de contrôle et de tester une référence null que de vérifier les propriétés prises en charge et de récupérer le modèle de contrôle, car cela entraîne moins d'appels interprocessus.

L'exemple suivant montre comment obtenir un modèle de contrôle TextPattern d'un AutomationElement.

// Specify the control type we're looking for, in this case 'Document'
PropertyCondition cond = new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Document);

// target --> The root AutomationElement.
AutomationElement textProvider = target.FindFirst(TreeScope.Descendants, cond);

targetTextPattern = textProvider.GetCurrentPattern(TextPattern.Pattern) as TextPattern;

if (targetTextPattern == null)
{
    Console.WriteLine("Root element does not contain a descendant that supports TextPattern.");
    return;
}

Récupération de propriétés sur des modèles de contrôle

Les clients peuvent récupérer les valeurs de propriété sur les modèles de contrôle en appelant AutomationElement.GetCachedPropertyValue ou AutomationElement.GetCurrentPropertyValue et en effectuant le cast de l'objet retourné en un type approprié. Pour plus d’informations sur les propriétés UI Automation, consultez Propriétés UI Automation pour les clients.

En plus des méthodes GetPropertyValue, les valeurs de propriété peuvent être récupérées via les accesseurs Common Language Runtime (CLR) pour accéder aux propriétés UI Automation sur un modèle.

Contrôles avec modèles variables

Certains types de contrôles prennent en charge différents modèles selon leur état ou la manière dont le contrôle est utilisé. Des exemples de contrôles pouvant avoir des modèles variables sont les affichages de liste (miniatures, vignettes, icônes, liste, détails), les graphiques Microsoft Excel (secteurs, courbes, barres, valeur de cellule avec une formule), la zone de document de Microsoft Word (normal, mode web, plan, mode Impression, aperçu avant impression) et les apparences du Lecteur Windows Media Microsoft.

Les contrôles implémentant des types de contrôles personnalisés peuvent disposer de n’importe quel jeu de modèles de contrôle nécessaires pour représenter leurs fonctionnalités.

Voir aussi