Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
- Omówienie wzorców automatyzacji kontrolek interfejsu użytkownika
- obsługują wzorce kontrolek w dostawcy automatyzacji interfejsu użytkownika
- Wzorce kontrolek automatyzacji interfejsu użytkownika dla klientów
- Nawigowanie między elementami automatyzacji interfejsu użytkownika za pomocą treeWalker
- Omówienie drzewa automatyzacji interfejsu użytkownika
- Użyj buforowania w automatyzacji interfejsu użytkownika