Mise en œuvre du modèle de contrôle de défilement de l'automatisation de l'interface utilisateur
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.
Cet article présente les conventions et recommandations à respecter pour implémenter IScrollProvider, notamment des informations sur les événements et les propriétés. Des liens vers des références supplémentaires sont répertoriés à la fin de la rubrique.
Le modèle de contrôle ScrollPattern permet de prendre en charge un contrôle qui agit comme un conteneur à défilement pour une collection d’objets enfants. Le contrôle n’est pas tenu d’utiliser les barres de défilement pour prendre en charge les fonctionnalités de défilement, bien que ce soit généralement le cas.
Exemple d’un contrôle de défilement qui n’utilise pas les barres de défilement
Pour obtenir des exemples de contrôles implémentant ce contrôle, consultez Control Pattern Mapping for UI Automation Clients.
Conventions et directives d'implémentation
Quand vous implémentez le modèle de contrôle Scroll, notez les conventions et recommandations suivantes :
Les enfants de ce contrôle doivent implémenter IScrollItemProvider.
Les barres de défilement d’un contrôle conteneur ne prennent pas en charge le modèle de contrôle ScrollPattern . Elles doivent prendre en charge le modèle de contrôle RangeValuePattern à la place.
Lorsque le défilement est mesuré sous forme de pourcentage, toutes les valeurs ou quantités liées à la graduation du défilement doivent être normalisées dans une plage de 0 à 100.
Les propriétésHorizontallyScrollableProperty et VerticallyScrollableProperty sont indépendantes de IsEnabledProperty.
Si HorizontallyScrollableProperty =
false
alors HorizontalViewSizeProperty doit avoir la valeur 100 % et HorizontalScrollPercentProperty la valeur NoScroll. De la même façon, si VerticallyScrollableProperty =false
alors VerticalViewSizeProperty doit avoir la valeur 100 % et VerticalScrollPercentProperty la valeur NoScroll. Cela permet au client UI Automation d’utiliser ces valeurs de propriété dans la méthode SetScrollPercent tout en évitant une condition de concurrence critique si une direction de défilement qui n’intéresse pas le client est activée.HorizontalScrollPercent est spécifique aux paramètres régionaux. Le paramètre HorizontalScrollPercent = 100.0 doit définir l’emplacement de défilement du contrôle sur l’équivalent de sa position la plus à droite pour des langues telles que le français qui sont lues de gauche à droite. Par ailleurs, pour des langues telles que l’arabe, qui sont lues de droite à gauche, le paramètre HorizontalScrollPercent = 100.0 doit définir l’emplacement de défilement sur la position la plus à gauche.
Membres requis pour IScrollProvider
Les propriétés et méthodes suivantes sont nécessaires à l'implémentation d' IScrollProvider.
Membre obligatoire | Type de membre | Notes |
---|---|---|
HorizontalScrollPercent | Propriété | Aucun |
VerticalScrollPercent | Propriété | Aucun |
HorizontalViewSize | Propriété | Aucun |
VerticalViewSize | Propriété | Aucun |
HorizontallyScrollable | Propriété | Aucun |
VerticallyScrollable | Propriété | Aucun |
Scroll | Méthode | Aucun |
SetScrollPercent | Méthode | Aucun |
Ce modèle de contrôle n’est associé aucun événement.
Exceptions
Les fournisseurs doivent lever les exceptions suivantes.
Type d’exception | Condition |
---|---|
ArgumentException | Scroll lève cette exception si un contrôle prend en charge les valeurs SmallIncrement exclusivement pour le défilement horizontal ou vertical, mais qu’une valeur LargeIncrement est passée. |
ArgumentException | SetScrollPercent lève cette exception quand une valeur ne pouvant pas être convertie en valeur double est passée. |
ArgumentOutOfRangeException | SetScrollPercent lève cette exception quand une valeur supérieure à 100 ou inférieure à 0 est passée (sauf -1 qui est équivalent à NoScroll). |
InvalidOperationException | Scroll et SetScrollPercent lèvent cette exception lors d’une tentative de défilement dans une direction non prise en charge. |