Implementacja wzorca formantu wyboru automatyzacji interfejsu użytkownika
Uwaga
Ta dokumentacja jest przeznaczona dla deweloperów programu .NET Framework, którzy chcą używać zarządzanych klas automatyzacja interfejsu użytkownika zdefiniowanych w System.Windows.Automation przestrzeni nazw. Aby uzyskać najnowsze informacje na temat automatyzacja interfejsu użytkownika, zobacz Interfejs API usługi Windows Automation: automatyzacja interfejsu użytkownika.
W tym temacie przedstawiono wytyczne i konwencje implementacji ISelectionProvider, w tym informacje o zdarzeniach i właściwościach. Linki do dodatkowych odwołań znajdują się na końcu tematu.
Wzorzec SelectionPattern kontrolki służy do obsługi kontrolek, które działają jako kontenery dla kolekcji elementów podrzędnych, które można wybrać. Elementy podrzędne tego elementu muszą implementować ISelectionItemProviderelement . Przykłady kontrolek implementujących ten wzorzec kontrolki można znaleźć w temacie Control Pattern Mapping for automatyzacja interfejsu użytkownika Clients (Mapowanie wzorca kontrolek dla klientów automatyzacja interfejsu użytkownika).
Wytyczne i konwencje implementacji
Podczas implementowania wzorca kontrolki Wybór należy pamiętać o następujących wytycznych i konwencjach:
Kontrolki implementujące ISelectionProvider zezwalają na wybranie jednego lub wielu elementów podrzędnych. Na przykład pole listy, widok listy i widok drzewa obsługują wiele opcji, natomiast pole kombi, suwak i grupa przycisków radiowych obsługują pojedynczy wybór.
Kontrolki, które mają minimalny, maksymalny i ciągły zakres, takie jak kontrolka suwaka głośności , powinny implementować IRangeValueProvider zamiast ISelectionProvider.
Kontrolki wyboru jednokrotnego, które zarządzają kontrolkami podrzędnymi, które implementują IRawElementProviderFragmentRootkontrolki , takie jak suwak Rozdzielczość ekranu w oknie dialogowym Właściwości wyświetlania lub kontrolka wyboru selektora kolorów z programu Microsoft Word (zilustrowane poniżej), powinny implementować wartości ; ich elementy podrzędne powinny implementować ISelectionProviderzarówno IRawElementProviderFragment , jak i ISelectionItemProvider.
Przykład mapowania ciągu próbki kolorów
- Menu nie obsługują SelectionPatternpolecenia . Jeśli pracujesz z elementami menu zawierającymi zarówno grafikę, jak i tekst (na przykład elementy okienka podglądu w menu Widok w programie Microsoft Outlook) i musisz przekazać stan, należy zaimplementować element IToggleProvider.
Wymagane elementy członkowskie dla elementu ISelectionProvider
Następujące właściwości, metody i zdarzenia są wymagane dla interfejsu ISelectionProvider .
Wymagane elementy członkowskie | Type | Uwagi |
---|---|---|
CanSelectMultiple | Właściwości | Powinna obsługiwać zdarzenia zmienione właściwości przy użyciu i AddAutomationPropertyChangedEventHandlerRemoveAutomationPropertyChangedEventHandler. |
IsSelectionRequired | Właściwości | Powinna obsługiwać zdarzenia zmienione właściwości przy użyciu i AddAutomationPropertyChangedEventHandlerRemoveAutomationPropertyChangedEventHandler. |
GetSelection | Method | Brak |
InvalidatedEvent | Zdarzenie | Zgłaszane, gdy wybór w kontenerze uległ znacznej zmianie i wymaga wysyłania większej InvalidateLimit liczby zdarzeń dodawania i usuwania niż stałe zezwolenia. |
Właściwości IsSelectionRequired i CanSelectMultiple mogą być dynamiczne. Na przykład początkowy stan kontrolki może nie zawierać żadnych elementów wybranych domyślnie, co oznacza, że IsSelectionRequired to false
. Jednak po wybraniu elementu kontrolka musi zawsze mieć zaznaczony co najmniej jeden element. Podobnie w rzadkich przypadkach kontrolka może zezwalać na wybór wielu elementów podczas inicjowania, ale następnie zezwala na wybór tylko pojedynczych elementów.
Wyjątki
Dostawcy muszą zgłaszać następujące wyjątki.
Typ wyjątku | Stan |
---|---|
ElementNotEnabledException | Jeśli kontrolka nie jest włączona. |
InvalidOperationException | Jeśli kontrolka jest ukryta. |
Zobacz też
- Wzorce kontrolek automatyzacji interfejsu użytkownika — omówienie
- Obsługa wzorców kontrolek dostawcy automatyzacji interfejsu użytkownika
- Wzorce kontrolek automatyzacji interfejsu użytkownika dla klientów
- Implementacja wzorca kontrolki SelectionItem dla automatyzacji interfejsu użytkownika
- Przegląd drzewa automatyzacji interfejsu użytkownika
- Używanie buforowania w automatyzacji interfejsu użytkownika