Udostępnij przez


Obsługa automatyzacji interfejsu użytkownika dla typu kontrolki MenuItem

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.

Ten temat zawiera informacje o obsłudze automatyzacji interfejsu użytkownika firmy Microsoft dla typu kontrolki MenuItem. Opisuje strukturę drzewa automatyzacji interfejsu użytkownika Microsoft oraz udostępnia właściwości i wzorce sterowania, które są wymagane dla typu kontrolki MenuItem.

Kontrolka menu umożliwia hierarchialną organizację elementów skojarzonych z poleceniami i procedurami obsługi zdarzeń. W typowej aplikacji systemu Microsoft Windows pasek menu zawiera kilka elementów menu (takich jak Plik, Edycja i Okno), a każdy element menu wyświetla menu. Menu zawiera kolekcję elementów menu (takich jak Nowy, Otwórzi Zamknij), które można rozwinąć, aby wyświetlić dodatkowe elementy menu lub wykonać określoną akcję po kliknięciu. Element menu może być hostowany w menu, pasku menu lub pasku narzędzi.

W poniższych sekcjach zdefiniowano wymaganą strukturę drzewa automatyzacji interfejsu użytkownika, właściwości, wzorce kontrolek i zdarzenia dla typu kontrolki MenuItem. Wymagania automatyzacji interfejsu użytkownika mają zastosowanie do wszystkich kontrolek listy, niezależnie od tego, czy windows Presentation Foundation (WPF), Win32 lub Windows Forms.

Wymagana struktura drzewa automatyzacji interfejsu użytkownika

W poniższej tabeli przedstawiono widok kontrolki i widok zawartości drzewa automatyzacji interfejsu użytkownika odnoszącego się do kontrolek elementów menu i opisano, co można zawierać w każdym widoku. Aby uzyskać więcej informacji na temat drzewa automatyzacji interfejsu użytkownika, zobacz Omówienie drzewa automatyzacji interfejsu użytkownika.

Widok sterowania Widok zawartości
MenuItem "Pomoc"

  • Menu (podmenu w elemencie menu 'Pomoc')

    • MenuItem "Tematy pomocy"
    • MenuItem "Informacje o Notatniku"
MenuItem "Pomoc"

- MenuItem "Tematy pomocy"
- MenuItem "Informacje o Notatniku"

Widok kontrolki elementu menu ma strukturę drzewa automatyzacji interfejsu użytkownika pokazaną powyżej. Należy pamiętać, że element menu Pomoc jest uwzględniony, aby lepiej zobrazować strukturę w typowym menu z hierarchią podmenu.

W widoku zawartości menu jest nieobecne w drzewie automatyzacji interfejsu użytkownika, ponieważ nie przekazuje znaczących informacji użytkownikowi końcowemu.

Wymagane właściwości automatyzacji interfejsu użytkownika

W poniższej tabeli wymieniono właściwości automatyzacji interfejsu użytkownika, których wartość lub definicja jest szczególnie istotna dla kontrolek elementów menu. Aby uzyskać więcej informacji na temat właściwości automatyzacji interfejsu użytkownika, zobacz Właściwości automatyzacji interfejsu użytkownika dla klientów.

Majątek Wartość Opis
AutomationIdProperty Zobacz uwagi. Wartość tej właściwości musi być unikatowa we wszystkich kontrolkach w aplikacji.
BoundingRectangleProperty Zobacz uwagi. Najbardziej oddalony prostokąt, który zawiera całą kontrolkę.
ClickablePointProperty Zobacz uwagi. Obsługiwane, jeśli istnieje prostokąt ograniczenia. Jeśli nie każdy punkt w prostokącie ograniczającym jest klikalny i wykonujesz wyspecjalizowane testowanie trafień, zapewnij punkt, który jest możliwy do kliknięcia.
IsKeyboardFocusableProperty Zobacz uwagi. Jeśli kontrolka może odbierać fokus klawiatury, musi obsługiwać tę właściwość.
NameProperty Zobacz uwagi. Kontrolka elementu menu jest uwzględniona w widoku zawartości drzewa automatyzacji interfejsu użytkownika i jest oznaczona etykietą własną nazwą.
LabeledByProperty Null Brak etykiety.
ControlTypeProperty MenuItem Ta wartość jest taka sama dla wszystkich struktur interfejsu użytkownika.
LocalizedControlTypeProperty pozycja menu Zlokalizowany ciąg odpowiadający typowi kontrolki MenuItem.
IsContentElementProperty Prawda Kontrolka elementu menu nigdy nie jest uwzględniana w widoku zawartości drzewa automatyzacji interfejsu użytkownika.
IsControlElementProperty Prawda Kontrolka elementu menu musi być zawsze uwzględniona w widoku kontrolki drzewa automatyzacji interfejsu użytkownika.

Wymagane wzorce kontrolek automatyzacji interfejsu użytkownika

W poniższej tabeli wymieniono wzorce kontrolek automatyzacji interfejsu użytkownika wymagane do obsługi przez kontrolki elementów menu. Aby uzyskać więcej informacji na temat wzorców kontrolek, zobacz Wzorce kontrolek automatyzacji interfejsu użytkownika — omówienie.

Właściwość wzorca kontrolki Wsparcie Notatki
IExpandCollapseProvider Zależy Jeśli kontrolkę można rozwinąć lub zwinąć, zaimplementuj element IExpandCollapseProvider.
IInvokeProvider Zależy Jeśli kontrolka wykonuje jedną akcję lub polecenie, zaimplementuj IInvokeProvider.
IToggleProvider Zależy Jeśli kontrolka reprezentuje opcję, którą można włączyć lub wyłączyć, zaimplementuj element IToggleProvider.
ISelectionItemProvider Zależy Jeśli kontrolka jest używana do wybierania z listy opcji między elementami menu, zaimplementuj ISelectionItemProvider.

Zdarzenia automatyzacji interfejsu użytkownika dla elementu menu

W poniższej tabeli wymieniono zdarzenia automatyzacji interfejsu użytkownika firmy Microsoft skojarzone z kontrolką elementu menu.

Zdarzenie Wsparcie Wyjaśnienie
InvokedEvent Zależy Należy podnieść, jeśli kontrolka obsługuje wzorzec kontrolek Invoke.
ToggleStateProperty zdarzenie zmiany właściwości. Zależy Należy zastosować, jeśli kontrolka obsługuje wzorzec kontroli Toggle.
ExpandCollapseStateProperty zdarzenie zmiany właściwości. Zależy Musi być ustawione, jeśli element sterujący obsługuje wzorzec Rozwiń Zwiń.
ElementSelectedEvent Zależy Żaden.

Wymagane zdarzenia automatyzacji interfejsu użytkownika

W poniższej tabeli wymieniono zdarzenia automatyzacji interfejsu użytkownika wymagane do obsługi wszystkich kontrolek elementów menu. Aby uzyskać więcej informacji na temat zdarzeń, zobacz Omówienie zdarzeń automatyzacji interfejsu użytkownika.

Zdarzenie automatyzacji interfejsu użytkownika Pomoc techniczna/wartość Notatki
InvokedEvent Zależy Żaden
ElementAddedToSelectionEvent Zależy Żaden
ElementRemovedFromSelectionEvent Zależy Żaden
ElementSelectedEvent Zależy Żaden
BoundingRectangleProperty zdarzenie zmiany właściwości. Wymagane Żaden
IsOffscreenProperty zdarzenie zmiany właściwości. Wymagane Żaden
IsEnabledProperty zdarzenie zmiany właściwości. Wymagane Żaden
ExpandCollapseStateProperty zdarzenie zmiany właściwości. Zależy Żaden
ToggleStateProperty zdarzenie zmiany właściwości. Zależy Żaden
AutomationFocusChangedEvent Wymagane Żaden
StructureChangedEvent Wymagane Żaden

Starsze problemy

Wzorzec przełącznika będzie obsługiwany wyłącznie wtedy, gdy element menu Win32 jest zaznaczony i można programowo określić konieczność wsparcia tego wzorca. Ponieważ element menu Win32 nie ujawnia, czy ma możliwość zaznaczenia, wzorzec wywołania będzie obsługiwany, gdy element menu nie jest zaznaczony. Zostanie zgłoszony wyjątek, aby zawsze obsługiwać wzorzec wywołania, nawet w przypadku elementów menu, które powinny obsługiwać tylko wzorzec przełącznika. Dzięki temu klienci nie będą zdezorientowani faktem, że element, który obsługiwał wzorzec wywołania (gdy element menu był niezaznaczony), nie obsługuje już wzorca, gdy jest zaznaczony.

Zobacz także