Udostępnij za pomocą


Implementacja wzorca kontrolki ExpandCollapse w automatyzacji interfejsu użytkownika

Uwaga / Notatka

Ta dokumentacja jest przeznaczona dla deweloperów programu .NET Framework, którzy chcą używać zarządzanych klas automatyzacji interfejsu użytkownika zdefiniowanych w przestrzeni nazw System.Windows.Automation. Aby uzyskać najnowsze informacje na temat automatyzacji interfejsu użytkownika, zobacz Windows Automation API: Automatyzacja interfejsu użytkownika.

W tym temacie przedstawiono wytyczne i konwencje implementowania IExpandCollapseProvider, w tym informacje o właściwościach, metodach i zdarzeniach. Linki do dodatkowych odwołań znajdują się na końcu przeglądu.

Wzorzec kontrolki ExpandCollapsePattern służy do obsługi kontrolek, które wizualnie rozszerzają się w celu wyświetlania większej ilości zawartości i zwijania w celu ukrycia zawartości. Przykłady kontrolek implementujących ten wzorzec kontrolki można znaleźć w temacie Control Pattern Mapping for UI Automation Clients.

Wytyczne i konwencje implementacji

Podczas implementowania wzorca kontrolki ExpandCollapse zwróć uwagę na następujące wytyczne i konwencje:

  • Zagregowane kontrolki — zbudowane z obiektów podrzędnych zapewniających funkcję rozwijania/zwijania interfejsu użytkownika — powinny obsługiwać wzorzec kontrolki ExpandCollapsePattern, podczas gdy ich elementy podrzędne tego nie robią. Na przykład kontrolka pola kombi jest kompilowana przy użyciu kombinacji pól listy, przycisków i kontrolek edycji, ale jest to tylko nadrzędne pole kombi, które musi obsługiwać ExpandCollapsePattern.

    Uwaga / Notatka

    Wyjątkiem jest kontrolka menu, która jest agregacją poszczególnych obiektów MenuItem. Obiekty MenuItem mogą obsługiwać wzorzec kontrolki ExpandCollapsePattern , ale kontrolka menu nadrzędnego nie może. Podobny wyjątek dotyczy kontrolek Drzewo i Element drzewa.

  • Gdy wartość kontrolki jest ustawiona na ExpandCollapseState, wszelkie funkcje LeafNode są obecnie nieaktywne dla kontrolki, a jedynymi informacjami, które można uzyskać przy użyciu tego wzorca kontrolki, jest ExpandCollapsePattern. Jeśli zostaną dodane jakiekolwiek obiekty podrzędne, ExpandCollapseState zmienia się, a ExpandCollapsePattern funkcjonalność zostanie aktywowana.

  • ExpandCollapseState odnosi się tylko do widoczności bezpośrednich obiektów podrzędnych; nie odnosi się do widoczności wszystkich obiektów potomnych.

  • Funkcjonalność rozwijania i zwijania jest specyficzna dla kontrolki. Poniżej przedstawiono przykłady tego zachowania.

    • Menu osobiste pakietu Office może być menu trójstanowe (Expanded, Collapsed i PartiallyExpanded), w którym kontrolka określa stan do przyjęcia, gdy wywoływany jest element Expand lub Collapse.

    • Wywołanie Expand elementu TreeItem może wyświetlać wszystkie elementy potomne lub tylko bezpośrednie elementy podrzędne.

    • Jeśli wywołanie Expand lub Collapse na kontrolce podtrzymuje stan jej elementów potomnych, zamiast zdarzenia zmiany stanu powinno zostać wysłane zdarzenie zmiany widoczności. Jeśli kontrolka nadrzędna nie podtrzymuje stanu jej elementów potomnych po zwinięciu, kontrolka może zniszczyć wszystkie elementy potomne, które nie są już widoczne i zgłosić zdarzenie zniszczenia; lub może zmienić ExpandCollapseState dla każdego elementu potomnego i wysłać zdarzenie zmiany widoczności.

  • Aby zagwarantować nawigację, pożądane jest, aby obiekt był w drzewie automatyzacji interfejsu użytkownika (z odpowiednim stanem widoczności) niezależnie od jego elementów nadrzędnych ExpandCollapseState. Jeśli elementy potomne są generowane na żądanie, mogą pojawiać się tylko w drzewie automatyzacji interfejsu użytkownika po pierwszym wyświetleniu lub tylko wtedy, gdy są widoczne.

Wymagane elementy członkowskie dla IExpandCollapseProvider

Następujące właściwości i metody są wymagane do zaimplementowania IExpandCollapseProvider.

Wymagani członkowie Typ członkostwa Notatki
ExpandCollapseState Majątek Żaden
Expand Metoda Żaden
Collapse Metoda Żaden
AutomationPropertyChangedEventHandler Zdarzenie Ta kontrola nie ma skojarzonych zdarzeń; użyj tego delegata ogólnego.

Wyjątki

Dostawcy muszą zgłaszać następujące wyjątki.

Typ wyjątku Warunek
InvalidOperationException Albo Expand albo Collapse jest wywoływane, gdy ExpandCollapseState = LeafNode.

Zobacz także