Delen via


Het UI-automatisering selectiecontrolepatroon implementeren

Opmerking

Deze documentatie is bedoeld voor .NET Framework-ontwikkelaars die de beheerde UI Automation-klassen willen gebruiken die zijn gedefinieerd in de System.Windows.Automation naamruimte. Zie Windows Automation-API: UI Automationvoor de meest recente informatie over UI Automation.

In dit onderwerp worden richtlijnen en conventies voor implementatie ISelectionProvidergeïntroduceerd, inclusief informatie over gebeurtenissen en eigenschappen. Koppelingen naar aanvullende verwijzingen worden aan het einde van het onderwerp weergegeven.

Het SelectionPattern besturingspatroon wordt gebruikt ter ondersteuning van besturingselementen die fungeren als containers voor een verzameling selecteerbare onderliggende items. De kinderen van dit element moeten ISelectionItemProvider implementeren. Zie Toewijzing van besturingspatronen voor UI Automation-clientsvoor voorbeelden van besturingselementen die dit besturingspatroon implementeren.

Implementatierichtlijnen en conventies

Let bij het implementeren van het selectiebeheerpatroon op de volgende richtlijnen en conventies:

  • Besturingselementen die ISelectionProvider implementeren, maken het mogelijk om een of meerdere onderliggende items te selecteren. Bijvoorbeeld: keuzelijst, lijstweergave en structuurweergave ondersteunen meerdere selecties, terwijl keuzelijst, schuifregelaar en radioknopgroep één selectie ondersteunen.

  • Besturingselementen met een minimum, maximum en doorlopend bereik, zoals de volumeschuifregelaar, moeten worden geïmplementeerd IRangeValueProvider in plaats van ISelectionProvider.

  • Besturingselementen voor één selectie die onderliggende besturingselementen beheren die IRawElementProviderFragmentRoot implementeren, zoals de schuifregelaar Schermresolutie in het dialoogvenster Weergave-eigenschappen of het besturingselement Kleurkiezer in Microsoft Word (hieronder geïllustreerd), moeten ISelectionProvider implementeren; hun onderliggende elementen moeten zowel IRawElementProviderFragment als ISelectionItemProvider implementeren.

Kleurkiezer met geel gemarkeerd. Voorbeeld van tekenreekstoewijzing van kleurstalen

  • Menu's bieden geen ondersteuning voor SelectionPattern. Als u met menu-items werkt die zowel afbeeldingen als tekst bevatten (zoals de items in het voorbeeldvenster in het menu Beeld in Microsoft Outlook) en de status moeten overbrengen, moet u implementeren IToggleProvider.

Vereiste leden voor ISelectionProvider

De volgende eigenschappen, methoden en gebeurtenissen zijn vereist voor de ISelectionProvider interface.

Vereiste leden Typologie Opmerkingen
CanSelectMultiple Vastgoed Moet gewijzigde gebeurtenissen van eigenschappen ondersteunen met behulp van AddAutomationPropertyChangedEventHandler en RemoveAutomationPropertyChangedEventHandler.
IsSelectionRequired Vastgoed Moet gewijzigde gebeurtenissen van eigenschappen ondersteunen met behulp van AddAutomationPropertyChangedEventHandler en RemoveAutomationPropertyChangedEventHandler.
GetSelection Methode Geen
InvalidatedEvent Gebeurtenis Verhoogd wanneer een selectie in een container aanzienlijk is gewijzigd en vereist dat er meer toevoegings- en verwijderingsgebeurtenissen worden verzonden dan de InvalidateLimit constante toestemming.

De IsSelectionRequired eigenschappen en CanSelectMultiple eigenschappen kunnen dynamisch zijn. Bijvoorbeeld, de initiële staat van een besturingselement heeft mogelijk standaard geen geselecteerde items, wat aangeeft dat IsSelectionRequired is false. Nadat een item is geselecteerd, moet het besturingselement echter altijd ten minste één item hebben geselecteerd. In zeldzame gevallen kan een besturingselement ook toestaan dat meerdere items worden geselecteerd tijdens de initialisatie, maar dat er vervolgens slechts enkele selecties kunnen worden gemaakt.

Uitzonderingen

Providers moeten de volgende uitzonderingen genereren.

Uitzonderingstype Conditie
ElementNotEnabledException Als het besturingselement niet is ingeschakeld.
InvalidOperationException Als het besturingselement is verborgen.

Zie ook