Wzorzec kontrolki ExpandCollapse
Opisuje wytyczne i konwencje implementowania IExpandCollapseProvider, w tym informacje o właściwościach, metodach i zdarzeniach. Wzorzec sterowania ExpandCollapse 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.
Aby zapoznać się z przykładami kontrolek implementujących ten wzorzec kontrolki, zobacz typy kontrolek i obsługiwane wzorce kontrolek.
Ten temat zawiera następujące sekcje.
- wytyczne i konwencje implementacji
- wymagane elementy członkowskie IExpandCollapseProvider
- Tematy pokrewne
Wytyczne i konwencje implementacji
Podczas implementowania wzorca kontrolki ExpandCollapse należy pamiętać o następujących wytycznych i konwencjach:
Zagregowane kontrolki utworzone za pomocą obiektów podrzędnych, które zapewniają interfejs użytkownika z funkcją rozwijania/zwijania, muszą obsługiwać ExpandCollapse 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ć wzorzec kontrolki ExpandCollapse.
Nuta
Wyjątkiem jest kontrolka menu, która jest agregacji pojedynczych obiektów elementów menu. Obiekty elementów menu mogą obsługiwać wzorzec sterowania ExpandCollapse, ale kontrolka menu nadrzędnego nie może. Podobny wyjątek dotyczy kontrolek drzewa i elementu drzewa.
Gdy IExpandCollapseProvider::ExpandCollapseState kontrolki jest ustawiona na ExpandCollapseState_LeafNode, wszystkie funkcje ExpandCollapse 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 zmieni i funkcja ExpandCollapse zostanie aktywowana.
ExpandCollapseState odnosi się tylko do widoczności natychmiastowych obiektów podrzędnych; nie odnosi się do widoczności wszystkich obiektów potomnych.
IExpandCollapseProvider::Rozwiń i funkcja Zwiń jest specyficzna dla kontrolek. Poniżej przedstawiono przykłady tego zachowania.
- Menu osobiste pakietu Office może być elementem menu trzystanowego ("Rozwinięte", "Zwinięte" i "CzęściowoRozpaczone") gdzie kontrolka określa stan, który ma zostać adoptowany, gdy Rozwiń lub zwiń.
- Wywoływanie Rozwiń elementu drzewa może wyświetlać wszystkie elementy podrzędne lub tylko bezpośrednie elementy podrzędne.
- Jeśli wywołanie Rozwiń lub Zwiń na kontrolce zachowuje stan jego elementów podrzędnych, zdarzenie zmiany widoczności powinno zostać wysłane, a nie zdarzenie zmiany stanu. Jeśli kontrolka nadrzędna nie zachowuje 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 automatyzacji interfejsu użytkownika firmy Microsoft (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 IExpandCollapseProvider
Następujące właściwości, metody i zdarzenia są wymagane do zaimplementowania interfejsu IExpandCollapseProvider.
Wymagane elementy członkowskie | Typ elementu członkowskiego | Notatki |
---|---|---|
ExpandCollapseState | Własność | Żaden |
Rozwiń | Metoda | Żaden |
zwiń | Metoda | Żaden |
IUIAutomationPropertyChangedEventHandler | Zdarzenie | Ta kontrolka nie ma skojarzonych zdarzeń; użyj tego ogólnego programu obsługi zdarzeń. |
Tematy pokrewne
-
Wzorce kontrolek automatyzacji interfejsu użytkownika — omówienie