Het patroon Selectiebeheer voor ui-automatisering implementeren
Notitie
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 Automation voor 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 onderliggende elementen van dit element moeten worden geïmplementeerd ISelectionItemProvider. Zie Beheerpatroontoewijzing voor UI Automation-clients voor 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 implementeren ISelectionProvider , kunnen één of meerdere onderliggende items worden geselecteerd. Keuzelijst, lijstweergave en structuurweergave ondersteunen bijvoorbeeld meerdere selecties, terwijl keuzelijst met invoervak, schuifregelaar en groep keuzerondjes éé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 worden geïmplementeerd IRawElementProviderFragmentRoot, zoals de schuifregelaar Schermresolutie in het dialoogvenster Weergave-eigenschappen of het besturingselement Kleurkiezer in Microsoft Word (hieronder geïllustreerd), moeten worden geïmplementeerd ISelectionProvider; de onderliggende elementen moeten beide IRawElementProviderFragment en ISelectionItemProvider.
Voorbeeld van tekenreekstoewijzing van kleurstalen
- Menu's bieden geen ondersteuning SelectionPatternvoor . 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 | Type | Opmerkingen |
---|---|---|
CanSelectMultiple | Eigenschappen | Moet gewijzigde gebeurtenissen van eigenschappen ondersteunen met behulp van AddAutomationPropertyChangedEventHandler en RemoveAutomationPropertyChangedEventHandler. |
IsSelectionRequired | Eigenschappen | Moet gewijzigde gebeurtenissen van eigenschappen ondersteunen met behulp van AddAutomationPropertyChangedEventHandler en RemoveAutomationPropertyChangedEventHandler. |
GetSelection | Wijze | 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. De initiële status van een besturingselement bevat bijvoorbeeld mogelijk geen items die standaard zijn geselecteerd, 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.
Type uitzondering | Conditie |
---|---|
ElementNotEnabledException | Als het besturingselement niet is ingeschakeld. |
InvalidOperationException | Als het besturingselement is verborgen. |