Implementacja wzorca formantu ExpandCollapse dla 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 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 automatyzacja interfejsu użytkownika Clients (Mapowanie wzorca kontrolek dla klientów automatyzacja interfejsu użytkownika).

Wytyczne i konwencje implementacji

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

  • Zagregowane kontrolki — kompilowane z obiektami podrzędnymi, które zapewniają interfejs użytkownika z funkcją rozwijania/zwijania — muszą obsługiwać ExpandCollapsePattern wzorzec kontrolki, podczas gdy ich elementy podrzędne nie. 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

    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.

  • ExpandCollapseState Gdy kontrolka jest ustawiona na LeafNodewartość , wszystkie ExpandCollapsePattern funkcje są obecnie nieaktywne dla kontrolki, a jedynymi informacjami, które można uzyskać przy użyciu tego wzorca kontrolki, jest ExpandCollapseState. Jeśli zostaną dodane jakiekolwiek obiekty podrzędne, ExpandCollapseState zmiany i ExpandCollapsePattern funkcjonalność zostaną aktywowane.

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

  • Funkcja Rozwiń i Zwiń jest specyficzna dla kontrolek. Poniżej przedstawiono przykłady tego zachowania.

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

    • 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 zachowuje stan jego elementów potomnych, zdarzenie zmiany widoczności powinno zostać wysłane, a nie zdarzenie zmiany stanu Jeśli kontrolka nadrzędna nie utrzymuje stanu jego elementów potomnych po zwinięciu, kontrolka może zniszczyć wszystkie elementy podrzędne, które nie są już widoczne i zgłosić zniszczone zdarzenie; lub może zmienić ExpandCollapseState dla każdego elementu podrzędnego i zgłosić zdarzenie zmiany widoczności.

  • Aby zagwarantować nawigację, pożądane jest, aby obiekt był w drzewie automatyzacja 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 automatyzacja 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 IExpandCollapseProvidermetody .

Wymagane elementy członkowskie Typ elementu członkowskiego Uwagi
ExpandCollapseState Właściwości Brak
Expand Method Brak
Collapse Method Brak
AutomationPropertyChangedEventHandler Zdarzenie Ta kontrolka nie ma skojarzonych zdarzeń; użyj tego delegata ogólnego.

Wyjątki

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

Typ wyjątku Stan
InvalidOperationException Element Expand lub Collapse jest wywoływany, gdy element ExpandCollapseState = LeafNode.

Zobacz też