Przegląd drzewa 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.
Asystacyjne produkty technologiczne i skrypty testowe nawigują po drzewie automatyzacja interfejsu użytkownika, aby zebrać informacje o interfejsie użytkownika i jego elementach.
W drzewie automatyzacja interfejsu użytkownika znajduje się element główny (RootElement), który reprezentuje bieżący pulpit i którego elementy podrzędne reprezentują okna aplikacji. Każdy z tych elementów podrzędnych może zawierać elementy reprezentujące elementy interfejsu użytkownika, takie jak menu, przyciski, paski narzędzi i pola listy. Te elementy z kolei mogą zawierać elementy, takie jak elementy listy.
Drzewo automatyzacja interfejsu użytkownika nie jest stałą strukturą i rzadko jest widoczne w jej całkowitej całości, ponieważ może zawierać tysiące elementów. Części są tworzone w miarę ich potrzeb i mogą przechodzić zmiany w miarę dodawania, przenoszenia lub usuwania elementów.
automatyzacja interfejsu użytkownika dostawcy obsługują drzewo automatyzacja interfejsu użytkownika, implementując nawigację między elementami w ramach fragmentu, który składa się z katalogu głównego (zwykle hostowanego w oknie) i poddrzewa. Jednak dostawcy nie są zaniepokojeni nawigacją między kontrolkami. Jest to zarządzane przez automatyzacja interfejsu użytkownika core przy użyciu informacji od domyślnych dostawców okien.
Widoki drzewa automatyzacji
Drzewo automatyzacja interfejsu użytkownika można filtrować w celu utworzenia widoków zawierających tylko te AutomationElement obiekty istotne dla określonego klienta. Takie podejście umożliwia klientom dostosowanie struktury przedstawionej za pomocą automatyzacja interfejsu użytkownika do ich konkretnych potrzeb.
Klient ma dwa sposoby dostosowywania widoku: przez określenie zakresu i przez filtrowanie. Określenie zakresu określa zakres widoku, zaczynając od elementu podstawowego: na przykład aplikacja może chcieć znaleźć tylko bezpośrednie elementy podrzędne pulpitu lub wszystkie elementy podrzędne okna aplikacji. Filtrowanie definiuje typy elementów, które mają być uwzględnione w widoku.
automatyzacja interfejsu użytkownika dostawcy obsługują filtrowanie, definiując właściwości elementów, w tym IsControlElementProperty właściwości i IsContentElementProperty .
automatyzacja interfejsu użytkownika udostępnia trzy widoki domyślne. Te widoki są definiowane przez typ wykonywanego filtrowania; zakres dowolnego widoku jest definiowany przez aplikację. Ponadto aplikacja może stosować inne filtry we właściwościach; na przykład aby uwzględnić tylko włączone kontrolki w widoku kontrolki.
Widok pierwotny
Pierwotny widok drzewa automatyzacja interfejsu użytkownika to pełne drzewo AutomationElement obiektów, dla których pulpit jest katalogem głównym. Widok pierwotny jest ściśle zgodny z natywną strukturą programową aplikacji i dlatego jest najbardziej szczegółowym widokiem dostępnym. Jest to również podstawa, na której są zbudowane inne widoki drzewa. Ponieważ ten widok zależy od podstawowej struktury interfejsu użytkownika, pierwotny widok przycisku WPF będzie miał inny nieprzetworzonego widoku niż przycisk Win32.
Widok pierwotny jest uzyskiwany przez wyszukiwanie elementów bez określania właściwości lub przy użyciu polecenia RawViewWalker , aby nawigować po drzewie.
Widok kontrolki
Widok kontroli drzewa automatyzacja interfejsu użytkownika upraszcza zadanie produktu technologii pomocniczej opisujące interfejs użytkownika użytkownikowi końcowemu i pomagając temu użytkownikowi końcowemu wchodzić w interakcję z aplikacją, ponieważ ściśle mapuje strukturę interfejsu użytkownika postrzeganą przez użytkownika końcowego.
Widok kontrolki jest podzbiorem widoku nieprzetworzonego. Zawiera on wszystkie elementy interfejsu użytkownika z widoku nieprzetworzonego, który użytkownik końcowy rozumie jako interaktywny lub współtworzy logiczną strukturę kontrolki w interfejsie użytkownika. Przykłady elementów interfejsu użytkownika, które przyczyniają się do logicznej struktury interfejsu użytkownika, ale nie są interakcyjne, to kontenery elementów, takie jak nagłówki widoku listy, paski narzędzi, menu i pasek stanu. Elementy nieinterakcyjne używane po prostu do celów układowych lub dekoracyjnych nie będą widoczne w widoku kontrolki. Przykładem jest panel, który został użyty tylko do układania kontrolek w oknie dialogowym, ale nie zawiera żadnych informacji. Elementy nieinterakcyjne, które będą widoczne w widoku sterowania, to grafika zawierająca informacje i tekst statyczny w oknie dialogowym. Elementy nieinterakcyjne zawarte w widoku sterowania nie mogą odbierać fokusu klawiatury.
Widok kontrolki jest uzyskiwany przez wyszukiwanie elementów, które mają właściwość ustawioną IsControlElement na true
, lub za pomocą polecenia , ControlViewWalker aby nawigować po drzewie.
Widok zawartości
Widok zawartości drzewa automatyzacja interfejsu użytkownika jest podzbiorem widoku kontrolki. Zawiera on elementy interfejsu użytkownika, które przekazują prawdziwe informacje w interfejsie użytkownika, w tym elementy interfejsu użytkownika, które mogą odbierać fokus klawiatury i jakiś tekst, który nie jest etykietą elementu interfejsu użytkownika. Na przykład wartości w polu kombi listy rozwijanej będą wyświetlane w widoku zawartości, ponieważ reprezentują informacje używane przez użytkownika końcowego. W widoku zawartości pole kombi i pole listy są reprezentowane jako kolekcja elementów interfejsu użytkownika, w których można wybrać jeden lub więcej niż jeden element. Fakt, że jeden jest zawsze otwarty i można rozwinąć i zwinąć, nie ma znaczenia w widoku zawartości, ponieważ jest przeznaczony do wyświetlania danych lub zawartości, które są prezentowane użytkownikowi.
Widok zawartości jest uzyskiwany przez wyszukiwanie elementów, które mają właściwość ustawioną IsContentElement na true
, lub za pomocą polecenia , ContentViewWalker aby nawigować po drzewie.