Udostępnij za pośrednictwem


Automatyzacja interfejsu użytkownika i aktywne ułatwienia dostępu firmy Microsoft

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.

Microsoft Active Accessibility to wcześniejsze rozwiązanie do udostępniania aplikacji. Microsoft UI Automation to nowy model ułatwień dostępu dla systemu Microsoft Windows i ma na celu zaspokojenie potrzeb produktów technologii pomocniczych i narzędzi do zautomatyzowanego testowania. Automatyzacja interfejsu użytkownika oferuje wiele ulepszeń dotyczących aktywnych ułatwień dostępu.

W tym temacie opisano główne funkcje automatyzacji interfejsu użytkownika i wyjaśniono, jak te funkcje różnią się od aktywnych ułatwień dostępu.

Języki programowania

Aktywne ułatwienia dostępu są oparte na modelu obiektów składników (COM) z obsługą podwójnych interfejsów i dlatego programowalne w języku C/C++, Microsoft Visual Basic 6.0 i językach skryptów. Automatyzacja interfejsu użytkownika (w tym biblioteka dostawcy po stronie klienta dla kontrolek standardowych) jest napisana w kodzie zarządzanym, a aplikacje klienckie automatyzacji interfejsu użytkownika są najłatwiej programowane przy użyciu języka C# lub Visual Basic .NET. Dostawcy automatyzacji interfejsu użytkownika, którzy są implementacjami interfejsu, mogą być pisani w kodzie zarządzanym lub w języku C/C++.

Obsługa w programie Windows Presentation Foundation

Windows Presentation Foundation (WPF) to nowy model tworzenia interfejsów użytkownika. Elementy WPF nie zawierają natywnej obsługi aktywnych ułatwień dostępu; Obsługują one jednak automatyzację interfejsu użytkownika, która obejmuje obsługę mostkowania dla klientów z aktywnymi ułatwieniami dostępu. Tylko klienci napisani specjalnie dla UI Automation mogą w pełni korzystać z funkcji ułatwień dostępu WPF, takich jak bogate wsparcie dla tekstu.

Serwery i klienci

W Aktywnych ułatwieniach dostępu serwery i klienci komunikują się bezpośrednio, głównie za pośrednictwem implementacji serwera IAccessible.

W usłudze Automatyzacja interfejsu użytkownika podstawowa usługa leży między serwerem (nazywanym dostawcą) a klientem. Podstawowa usługa wykonuje wywołania interfejsów implementowanych przez dostawców i udostępnia dodatkowe usługi, takie jak generowanie unikatowych identyfikatorów środowiska uruchomieniowego dla elementów. Aplikacje klienckie używają funkcji biblioteki do wywoływania usługi automatyzacji interfejsu użytkownika.

Dostawcy automatyzacji interfejsu użytkownika mogą udostępniać informacje klientom z aktywnymi ułatwieniami dostępu, a serwery z aktywnymi ułatwieniami dostępu mogą udostępniać informacje aplikacjom klienckim automatyzacji interfejsu użytkownika. Jednak ze względu na to, że aktywne ułatwienia dostępu nie uwidaczniają tak dużej ilości informacji, jak automatyzacja interfejsu użytkownika, te dwa modele nie są w pełni zgodne.

Elementy interfejsu użytkownika

Aktywna dostępność przedstawia elementy interfejsu użytkownika jako interfejs lub identyfikator elementu podrzędnego IAccessible. Trudno jest porównać dwa IAccessible wskaźniki, aby ustalić, czy odwołują się do tego samego elementu.

W automatyzacji interfejsu użytkownika każdy element jest reprezentowany jako AutomationElement obiekt. Porównanie odbywa się przy użyciu operatora równości lub Equals metody, z których oba porównują unikatowe identyfikatory środowiska uruchomieniowego elementów.

Widoki drzewa i nawigacja

Elementy interfejsu użytkownika na ekranie można postrzegać jako strukturę drzewa z pulpitem głównym, oknami aplikacji jako bezpośrednimi elementami podrzędnymi i elementami w aplikacjach jako elementami podrzędnymi.

W obszarze Aktywne ułatwienia dostępu wiele elementów automatyzacji, które są nieistotne dla użytkowników końcowych, są widoczne w drzewie. Aplikacje klienckie muszą przyjrzeć się wszystkim elementom, aby określić, które z nich mają znaczenie.

Aplikacje klienckie automatyzacji interfejsu użytkownika widzą interfejs użytkownika za pośrednictwem filtrowanego widoku. Widok zawiera tylko interesujące elementy: te, które dają informacje użytkownikowi lub umożliwiają interakcję. Wstępnie zdefiniowane widoki tylko dla elementów sterujących i tylko dla elementów zawartości są dostępne; ponadto aplikacje mogą definiować widoki niestandardowe. Automatyzacja interfejsu użytkownika upraszcza zadanie opisywania interfejsu użytkownika dla użytkownika i pomagania użytkownikowi w interakcji z aplikacją.

Nawigacja między elementami w Active Accessibility jest albo przestrzenna (na przykład przejście do elementu znajdującego się po lewej stronie ekranu), logiczna (na przykład przejście do następnego elementu menu lub do następnego elementu w kolejności tabulatora w oknie dialogowym) lub hierarchiczna (na przykład przeniesienie pierwszego elementu potomnego w kontenerze lub z elementu podrzędnego do elementu nadrzędnego). Hierarchiczna nawigacja jest skomplikowana przez fakt, że elementy podrzędne nie zawsze są obiektami, które implementują IAccessible.

W usłudze Automatyzacja interfejsu użytkownika wszystkie elementy interfejsu użytkownika są AutomationElement obiektami obsługującymi te same podstawowe funkcje. (Z punktu widzenia dostawcy są to obiekty, które implementują interfejs dziedziczony z IRawElementProviderSimple.) Nawigacja jest głównie hierarchiczna: od rodziców do dzieci i od jednego rodzeństwa do następnego. (Nawigacja między węzłami ma logiczny aspekt, ponieważ może odpowiadać kolejności tabulacji). Możesz przechodzić z dowolnego punktu początkowego, korzystając z dowolnego filtrowanego widoku drzewa przy użyciu klasy TreeWalker. Można również przejść do określonych elementów podrzędnych lub elementów potomnych przy użyciu znaczników FindFirst i FindAll. Na przykład, bardzo łatwo jest pobrać wszystkie elementy w oknie dialogowym, które obsługują określony wzorzec kontrolki.

Nawigacja w Automatyzacji UI jest bardziej spójna niż w Active Accessibility. Niektóre elementy, takie jak listy rozwijane i okna podręczne, pojawiają się dwa razy w drzewie Active Accessibility, co może prowadzić do nieoczekiwanych rezultatów podczas nawigacji. W rzeczywistości nie można poprawnie zaimplementować Active Accessibility dla kontrolki rebar. Automatyzacja interfejsu użytkownika umożliwia reparenting i repozycję, dzięki czemu element można umieścić w dowolnym miejscu w drzewie pomimo hierarchii nałożonej przez własność okien.

Role i typy kontrolek

Program Active Accessibility używa właściwości accRole (IAccessible::get_actRole), aby uzyskać opis roli elementu w interfejsie użytkownika, na przykład ROLE_SYSTEM_SLIDER lub ROLE_SYSTEM_MENUITEM. Rola elementu jest główną wskazówką dla jego dostępnych funkcji. Interakcja z kontrolką jest osiągana przy użyciu stałych metod, takich jak IAccessible::accSelect i IAccessible::accDoDefaultAction. Interakcja między aplikacją kliencka a interfejsem użytkownika jest ograniczona do tego, co można zrobić za pośrednictwem usługi IAccessible.

Natomiast automatyzacja interfejsu użytkownika w dużej mierze rozdziela typ kontrolki elementu (określony przez właściwość ControlType) od jego oczekiwanej funkcjonalności. Funkcjonalność jest określana przez wzorce sterowania obsługiwane przez dostawcę za pośrednictwem implementacji wyspecjalizowanych interfejsów. Wzorce sterowania można połączyć w celu opisania pełnego zestawu funkcji obsługiwanych przez określony element interfejsu użytkownika. Niektórzy dostawcy muszą obsługiwać określony wzorzec kontrolnego; na przykład dostawca pola wyboru musi obsługiwać wzorzec kontrolki typu Przełączanie. Inni dostawcy są zobowiązani do obsługi co najmniej jednego zestawu wzorców kontroli; na przykład przycisk musi obsługiwać przełącznik lub wywołanie. Nadal inni nie obsługują żadnych wzorców kontroli w ogóle; na przykład okienko, którego nie można przenosić, zmieniać rozmiaru ani zadokować, nie ma żadnych wzorców sterujących.

Automatyzacja interfejsu użytkownika obsługuje kontrolki niestandardowe, które są identyfikowane przez właściwość Custom i można je opisać za pomocą właściwości LocalizedControlTypeProperty.

W poniższej tabeli przedstawiono odpowiadanie ról Active Accessibility do typów kontrolek automatyzacji interfejsu użytkownika.

Aktywna rola ułatwień dostępu Typ kontrolki automatyzacji interfejsu użytkownika
Przycisk systemowy Przycisk
ROLA_SYSTEM_KLIENT Kalendarz
ELEMENT_KONTROLI_BOX_ZAZNACZENIA_SYSTEMOWEGO Pole wyboru
ROLA_SYSTEMOWA_KOMBOBOX Pole kombi
ROLA_SYSTEMU_KLIENT Na zamówienie
ROLA_SYSTEMOWA_LISTA Siatka danych
ROLE_SYSTEM_LISTITEM Element danych
ROLA_SYSTEMU_DOKUMENTU Dokument
ROLE_SYSTEM_TEXT Edytuj
ROLA_SYSTEMOWA_GRUPOWANIE Grupa
ROLA_SYSTEMU_LISTA Nagłówek
ROL_SYSTEMOWY_HEADER_KOLUMN Element nagłówka
ROLA_SYSTEMOWEGO_ODNOŚNIKA Hiperłącze
ROLA_SYSTEMOWA_GRAFICZNA Obraz
LISTA_SYSTEMOWA_ROLI Lista
Element listy systemu Element listy
ROLE_SYSTEM_MENUPOPUP Menu
ROLE_SYSTEM_MENUBAR Pasek menu
ROLE_SYSTEM_MENUITEM Pozycja menu
ROLE_SYSTEM_PANE Panel
Pasek postępu systemu Pasek postępu
ROLA_SYSTEM_PRZYCISK_RADIOWY Przycisk radiowy
ROLE_SYSTEM_SCROLLBAR Pasek przewijania
ROLA_SYSTEMOWA_SEPARATOR Rozdzielacz
ROLA_SYSTEMU_SUWAK Suwak
ROLA_SYSTEM_PRZYCISK_OBROTOWY Okrągły wskaźnik przetwarzania
PRZYCISK_ROZWIEDLACZ_SYSTEMOWY Przycisk Podziel
ROLE_SYSTEM_STATUSBAR Pasek stanu
ROLA_SYSTEMOWA_LISTAZAKŁADEKSTRONY Zakładka
ROLA_SYSTEMOWA_ZAKŁADKA Zakładka
ROLA_SYSTEM_TABELA Tabela
ROLAD_SYSTEM_TEXTSTATYCZNY Tekst
INFORMATOR_SYSTEMOWY Kciuk
ROLA_SYSTEMOWY_PASEK_TYTUŁOWY Pasek tytułowy
PASEK NARZĘDZI SYSTEMU Pasek narzędzi
ROLA_SYSTEMOWEGO_BALONIKA Podpowiedź
Rola systemu: zarys Drzewo
ROLA_SYSTEMOWA_ZARYS_ELEMENT Element drzewa
ROLA_SYSTEM_OKNO Okno

Aby uzyskać więcej informacji na temat różnych typów kontrolek, zobacz Typy kontrolek automatyzacji interfejsu użytkownika.

Stany i właściwości

W obszarze Aktywne ułatwienia dostępu elementy obsługują wspólny zestaw właściwości, a niektóre właściwości (takie jak accState) muszą opisywać bardzo różne elementy, w zależności od roli elementu. Serwery muszą implementować wszystkie metody IAccessible , które zwracają właściwość, nawet te, które nie są istotne dla elementu.

Automatyzacja interfejsu użytkownika definiuje wiele innych właściwości, z których niektóre odpowiadają stanom w obszarze Aktywne ułatwienia dostępu. Niektóre są wspólne dla wszystkich elementów, ale inne są specyficzne dla typów kontrolek i wzorców kontrolek. Właściwości są rozróżniane przez unikatowe identyfikatory, a większość właściwości można pobrać przy użyciu jednej metody GetCurrentPropertyValue lub GetCachedPropertyValue. Wiele właściwości można również łatwo pobrać za pomocą dostępu do właściwości Current i Cached.

Dostawca automatyzacji interfejsu użytkownika nie musi implementować nieistotnych właściwości, ale może po prostu zwrócić null wartość dla dowolnych właściwości, które nie obsługuje. Ponadto usługa podstawowa automatyzacji interfejsu użytkownika może uzyskać niektóre właściwości od domyślnego dostawcy okien i są one połączone z właściwościami jawnie zaimplementowanymi przez dostawcę.

Oprócz obsługi wielu innych właściwości usługa Automatyzacja interfejsu użytkownika zapewnia lepszą wydajność, umożliwiając pobieranie wielu właściwości za pomocą pojedynczego wywołania między procesami.

W poniższej tabeli przedstawiono korespondencję między właściwościami w dwóch modelach.

Dostęp do właściwości Aktywne ułatwienia dostępu Identyfikator właściwości automatyzacji interfejsu użytkownika Uwagi
get_accKeyboardShortcut AccessKeyProperty lub AcceleratorKeyProperty AccessKeyProperty ma pierwszeństwo, jeśli oba są obecne.
get_accName NameProperty
get_accRole ControlTypeProperty Zobacz poprzednią tabelę, aby uzyskać mapowanie ról na typy kontrolek.
get_accValue ValuePattern.ValueProperty

RangeValuePattern.ValueProperty
Prawidłowe tylko dla typów kontrolek, które obsługują ValuePattern lub RangeValuePattern. Wartości RangeValue są znormalizowane do 0–100, aby były zgodne z działaniem technologii MSAA. Elementy wartości używają ciągu.
get_accHelp HelpTextProperty
accLocation BoundingRectangleProperty
get_accDescription Nie jest obsługiwane w automatyzacji komponentów interfejsu użytkownika accDescription nie miała wyraźnej specyfikacji w MSAA, co spowodowało, że dostawcy umieszczali różne informacje w tym polu.
get_accHelpTopic Automatyzacja interfejsu użytkownika nie jest obsługiwana

W poniższej tabeli przedstawiono, które właściwości automatyzacji interfejsu użytkownika odpowiadają stałym stanom stanu aktywnej dostępności.

Stan aktywnej ułatwień dostępu Właściwość automatyzacji interfejsu użytkownika Wyzwala zmiany stanu?
STATE_SYSTEM_CHECKED Pole wyboru, ToggleStateProperty

Dla przycisku radiowego, IsSelectedProperty
Y
AWARIA_SYSTEMU_ZAPAŚĆ ExpandCollapseState = Collapsed Y
STAN_SYSTEMU_ROZSZERZONY ExpandCollapseState = Expanded lub PartiallyExpanded Y
Stan_systemu_ogniskowalny IsKeyboardFocusableProperty N
STAN_SYSTEMU_SKUPIONY HasKeyboardFocusProperty N
STAN_SYSTEMU_MA_WYSKAKUJĄCE_OKNO ExpandCollapsePattern dla elementów menu N
STAN_SYSTEMU_NIEWIDOCZNY IsOffscreenProperty = True i GetClickablePoint powoduje NoClickablePointException N
SYSTEM_PAŃSTWOWY_POŁĄCZONY ControlTypeProperty =

Hyperlink
N
STAN_SYSTEMU_MIESZANY ToggleState = Indeterminate N
STATE_SYSTEM_PRZESUWALNY CanMoveProperty N
STATE_SYSTEM_MULTISELECTABLE CanSelectMultipleProperty N
Stan systemu poza ekranem IsOffscreenProperty = Prawda N
STAN_SYSTEMU_OCHRONIONY IsPasswordProperty N
SYSTEM_TYLKO_DO_ODCZYTU RangeValuePattern.IsReadOnlyProperty i ValuePattern.IsReadOnlyProperty N
STATE_SYSTEM_SELECTABLE SelectionItemPattern jest obsługiwane N
STAN_SYSTEMU_WYBRANY IsSelectedProperty N
STAN_SYSTEMOWY_ROZMIAROWY CanResize N
STAN_SYSTEMU_NIEDOSTĘPNY IsEnabledProperty Y

Następujące stany nie zostały zaimplementowane przez większość aktywnych serwerów kontroli ułatwień dostępu lub nie mają odpowiednika w automatyzacji interfejsu użytkownika.

Stan aktywnej ułatwień dostępu Uwagi
STATE_SYSTEM_BUSY Niedostępne w automatyzacji UI
DOMYŚLNE_USTAWIENIE_SYSTEMU Niedostępne w automatyzacji UI
STAN_SYSTEMU_ANIMOWANY Niedostępne w automatyzacji UI
STATE_SYSTEM_EXTSELECTABLE Nie jest szeroko zaimplementowane przez serwery Aktywnej dostępności.
Stan_systemu_marquee Rzadko implementowane przez serwery Active Accessibility
stan samoprzemawiania systemu Nie jest szeroko stosowane przez serwery Active Accessibility
PRZEBYTOSYSTEM_STAN Niedostępne w automatyzacji UI.
STATE_SYSTEM_ALERT_HIGH Jest słabo wdrożone przez serwery Active Accessibility.
STATE_SYSTEM_ALERT_MEDIUM Niezbyt szeroko zaimplementowane przez serwery Active Accessibility
STAN_SYSTEMU_ALERT_NISKI Nie jest szeroko zaimplementowane przez serwery Active Accessibility
STAN_SYSTEMU_PŁYWAJĄCY Nie jest powszechnie implementowane przez serwery Active Accessibility
STATE_SYSTEM_HOTTRACKED Niedostępne w automatyzacji UI
STAN_SYSTEMU_WCIŚNIĘTY Niedostępne w automatyzacji UI

Aby uzyskać pełną listę identyfikatorów właściwości automatyzacji interfejsu użytkownika, zobacz Omówienie właściwości automatyzacji interfejsu użytkownika.

Zdarzenia

Mechanizm zdarzeń w automatyzacji interfejsu użytkownika, w przeciwieństwie do tego w obszarze Aktywne ułatwienia dostępu, nie polega na routingu zdarzeń systemu Windows (który jest ściśle powiązany z uchwytami okien) i nie wymaga, aby aplikacja kliencka skonfigurowała punkty zaczepienia. Subskrypcje zdarzeń można dostosować nie tylko do konkretnych zdarzeń, ale także do określonych elementów drzewa. Dostawcy mogą również dostroić ich zbieranie zdarzeń, śledząc, jakie zdarzenia są nasłuchiwane.

Klientom łatwiej jest również odebrać elementy, które zgłaszają zdarzenia, ponieważ są one przekazywane bezpośrednio do wywołania zwrotnego zdarzenia. Właściwości elementu są automatycznie wczytywane z wyprzedzeniem, jeśli żądanie cache'u było aktywne w momencie, gdy klient zarejestrował się na wydarzenie.

W poniższej tabeli przedstawiono połączenie zdarzeń Aktywnego Ułatwienia Dostępu WinEvents i zdarzeń Automatyzacji Interfejsu Użytkownika.

WinEvent Identyfikator zdarzenia automatyzacji interfejsu użytkownika
ZDARZENIE_OBIEKT_ZMIANA_PRZYSPIESZENIE AcceleratorKeyProperty zmiana właściwości
ZDARZENIE_OBIEKT_TREŚĆ_PRZESUNIĘTA zmiana właściwości VerticalScrollPercentProperty lub HorizontalScrollPercentProperty na skojarzonych paskach przewijania
Zdarzenie_Obiekt_Tworzenie StructureChangedEvent
EVENT_OBJECT_DEFACTIONCHANGE Brak odpowiednika
ZMIANA_OPISU_OBIEKTU_WYDARZENIA Nie ma dokładnego odpowiednika; być może HelpTextProperty lub LocalizedControlTypeProperty zmiana właściwości
ZDARZENIE_OBIEKT_USUNIĘCIE StructureChangedEvent
ZDARZENIE_OBIEKT_FOKUS AutomationFocusChangedEvent
ZMIANA_OBIEKTU_POMOCY_EVENT HelpTextProperty zmieniać
ZDARZENIE_OBIEKT_UKRYJ StructureChangedEvent
ZMIANA_LOKALIZACJI_OBIEKTU wydarzenia BoundingRectangleProperty zmiana właściwości
EVENT_OBJECT_NAMECHANGE (Zmiana nazwy obiektu zdarzenia) NameProperty zmiana właściwości
ZMIANA_OBIEKTU_NADRZĘDNEGO StructureChangedEvent
ZDARZENIE_OBIEKTU_PRZESORTOWANIE Nie jest spójnie używany w Active Accessibility. W usłudze Automatyzacja interfejsu użytkownika nie zdefiniowano żadnego bezpośrednio odpowiadającego zdarzenia.
WYDARZENIE_OBIEKT_WYBORU ElementSelectedEvent
Zdarzenie_OBJECT_SELECTIONADD ElementAddedToSelectionEvent
ZDARZENIE_OBIEKT_USUNIĘCIE Z WYBORU ElementRemovedFromSelectionEvent
Obiekt_ZaznaczenieWewnątrz Brak odpowiednika
Pokaz obiektu zdarzenia StructureChangedEvent
ZMIANA_STANU_OBIEKTU_EVENT Różne zdarzenia zmiany właściwości
Zdarzenie_Zmiana_Wartości_Obiektu RangeValuePattern.ValueProperty i ValuePattern.ValueProperty zmienione
EVENT_SYSTEM_ALERT Brak odpowiednika
Zdarzenie_Zakończenie_Przewu_Systemowego (EVENT_SYSTEM_CAPTUREEND) Brak odpowiednika
ZADARZENIE_SYSTEMU_ROZPOCZĘCIE_PRZECHWYTYWANIA Brak odpowiednika
ZAKOŃCZENIE_POMOCY_KONTEKSTOWEJ_SYSTEMU Brak odpowiednika
EVENT_SYSTEM_CONTEXTHELPSTART Brak odpowiednika
EVENT_SYSTEM_DIALOGEND WindowClosedEvent
ZDARZENIE_ROZPOCZĘCIE_DIALOGU_SYSTEMU WindowOpenedEvent
Zdarzenie_System_ZakończeniePrzeciąganiaUpuszczania Brak odpowiednika
ZDARZENIE_SYSTEM_PRZENIESIENIE_ROZPOCZĘCIE Brak odpowiednika
EVENT_SYSTEM_FOREGROUND AutomationFocusChangedEvent
ZAKOŃCZENIE_MENU_SYSTEMU_EVENT MenuClosedEvent
ZAKOŃCZENIE_WYŚWIETLANIA_MENU_SYSTEMU MenuClosedEvent
EVENT_SYSTEM_MENUPOPUPSTART MenuOpenedEvent
EVENT_SYSTEM_MENUSTART MenuOpenedEvent
EVENT_SYSTEM_MINIMIZEEND WindowVisualStateProperty zmiana właściwości
EVENT_SYSTEM_MINIMIZESTART WindowVisualStateProperty zmiana właściwości
EVENT_SYSTEM_MOVESIZEEND BoundingRectangleProperty zmiana właściwości
EVENT_SYSTEM_MOVESIZESTART BoundingRectangleProperty zmiana właściwości
EVENT_SYSTEM_SCROLLINGEND VerticalScrollPercentProperty lub HorizontalScrollPercentProperty zmiana właściwości
ZDARZENIE_SYSTEMU_POCZĄTEK_PRZEWIJANIA VerticalScrollPercentProperty lub HorizontalScrollPercentProperty zmiana właściwości
ZDARZENIE_SYSTEMU_DŹWIĘK Brak odpowiednika
EVENT_SYSTEM_SWITCHEND Brak odpowiednika, ale AutomationFocusChangedEvent to zdarzenie sygnalizuje, że nowa aplikacja otrzymała uwagę
EVENT_SYSTEM_ROZPOCZĘCIEPRZEŁĄCZANIA Brak odpowiednika
Brak odpowiednika CurrentViewProperty zmiana właściwości
Brak odpowiednika HorizontallyScrollableProperty zmiana właściwości
Brak odpowiednika VerticallyScrollableProperty zmiana właściwości
Brak odpowiednika HorizontalScrollPercentProperty zmiana właściwości
Brak odpowiednika VerticalScrollPercentProperty zmiana właściwości
Brak odpowiednika HorizontalViewSizeProperty zmiana właściwości
Brak odpowiednika VerticalViewSizeProperty zmiana właściwości
Brak odpowiednika ToggleStateProperty zmiana właściwości
Brak odpowiednika WindowVisualStateProperty zmiana właściwości
Brak odpowiednika zdarzenie AsyncContentLoadedEvent
Brak odpowiednika ToolTipOpenedEvent

Bezpieczeństwo

Niektóre IAccessible scenariusze dostosowywania wymagają zawijania obiektu bazowego IAccessible i wywoływania jej. Ma to wpływ na bezpieczeństwo, ponieważ częściowo zaufany składnik nie powinien być pośrednikiem w ścieżce kodu.

Model automatyzacji interfejsu użytkownika eliminuje potrzebę wywoływania kodu innego dostawcy przez dostawców. Podstawowa usługa automatyzacji interfejsu użytkownika wykonuje wszystkie niezbędne agregacje.

Zobacz także

  • Podstawy automatyzacji interfejsu użytkownika