Stöd för användargränssnittsautomatisering för kontrolltypen MenuItem

Anmärkning

Den här dokumentationen är avsedd för .NET Framework-utvecklare som vill använda de hanterade UI Automation-klasserna som definierats i System.Windows.Automation namnrymd. Den senaste informationen om UI Automation finns i Windows Automation API: UI Automation.

Det här avsnittet innehåller information om Microsoft UI Automation-stöd för kontrolltypen MenuItem. Den beskriver kontrollens Microsoft UI Automation-trädstruktur och innehåller de egenskaper och kontrollmönster som krävs för kontrolltypen MenuItem.

En menykontroll tillåter hierarkisk organisation av element som är associerade med kommandon och händelsehanterare. I ett typiskt Microsoft Windows-program innehåller en menyrad flera menyalternativ (till exempel Arkiv, Redigera och Fönster) och varje menyalternativ visar en meny. En meny innehåller en samling menyobjekt (till exempel New, Openoch Close), som kan expanderas för att visa ytterligare menyobjekt eller utföra en specifik åtgärd när du klickar. Ett menyalternativ kan finnas i en meny, menyrad eller verktygsfält.

I följande avsnitt definieras den nödvändiga UI Automation-trädstrukturen, egenskaperna, kontrollmönstren och händelserna för kontrolltypen MenuItem. Kraven för användargränssnittsautomatisering gäller för alla listkontroller, oavsett om det gäller Windows Presentation Foundation (WPF), Win32 eller Windows Forms.

Obligatorisk trädstruktur för användargränssnittsautomatisering

I följande tabell visas kontrollvyn och innehållsvyn för UI Automation-trädet som gäller för menyalternativkontroller och beskriver vad som kan finnas i varje vy. Mer information om UI Automation-trädet finns i Översikt över UI Automation Tree.

Kontrollvy Innehållsvy
MenuItem "Hjälp"

  • Meny (undermeny i menyalternativet Hjälp)

    • MenuItem "Hjälpämnen"
    • MenuItem "Om Anteckningar"
MenuItem "Hjälp"

- MenuItem "Hjälpämnen"
- Menyval "Om Notepad"

Kontrollvyn för menyalternativkontrollen har UI Automation-trädstrukturen som visas ovan. Observera att menyalternativet Hjälp ingår för att bättre illustrera strukturen i en typisk meny till undermenyhierarkin.

För innehållsvyn saknas Menyn i UI Automation-trädet eftersom den inte förmedlar meningsfull information till slutanvändaren.

Nödvändiga egenskaper för UI Automation

I följande tabell visas de UI Automation-egenskaper vars värde eller definition är särskilt relevant för menyalternativkontroller. Mer information om egenskaper för UI Automation finns i UI Automation Properties for Clients (Egenskaper för gränssnittsautomatisering för klienter).

Fastighet Värde Beskrivning
AutomationIdProperty Se anteckningar. Värdet för den här egenskapen måste vara unikt för alla kontroller i ett program.
BoundingRectangleProperty Se anteckningar. Den yttersta rektangeln som innehåller hela kontrollen.
ClickablePointProperty Se anteckningar. Stöds om det finns en rektangel för avgränsning. Om inte varje punkt i avgränsningsrektangeln är klickbar och du utför specialiserad träfftestning, bör du åsidosätta och ange en klickbar punkt.
IsKeyboardFocusableProperty Se anteckningar. Om kontrollen kan få tangentbordsfokus måste den ha stöd för den här egenskapen.
NameProperty Se anteckningar. Menyalternativkontrollen ingår i innehållsvyn i UI Automation-trädet och är självetiketterad med ett namn.
LabeledByProperty Null Ingen etikett.
ControlTypeProperty Menyobjekt Det här värdet är detsamma för alla gränssnittsramverk.
LocalizedControlTypeProperty "menyalternativ" Lokaliserad sträng som motsvarar kontrolltypen MenuItem.
IsContentElementProperty Sann Menyalternativkontrollen ingår aldrig i innehållsvyn i UI Automation-trädet.
IsControlElementProperty Sann Menyalternativkontrollen måste alltid ingå i kontrollvyn för UI Automation-trädet.

Nödvändiga UI Automation-kontrollmönster

I följande tabell visas de UI Automation-kontrollmönster som krävs för att stödjas av menyalternativkontroller. Mer information om kontrollmönster finns i UI Automation Control Patterns Overview.

Egenskap för kontrollmönster Stöd Noteringar
IExpandCollapseProvider Det beror på Om kontrollen kan expanderas eller komprimeras implementerar du IExpandCollapseProvider.
IInvokeProvider Det beror på Om kontrollen kör en enda åtgärd eller ett kommando implementerar du IInvokeProvider.
IToggleProvider Det beror på Om kontrollen representerar ett alternativ som kan aktiveras eller inaktiveras implementerar du IToggleProvider.
ISelectionItemProvider Det beror på Om kontrollen används för att välja från en lista över alternativ bland menyalternativ implementerar du ISelectionItemProvider.

UI Automation-händelser för menyobjekt

I följande tabell visas de Microsoft UI Automation-händelser som är associerade med menyalternativkontrollen.

Evenemang Stöd Förklaring
InvokedEvent Det beror på Måste aktiveras om kontrollen stöder mönstret Anropa kontroll.
ToggleStateProperty egenskapsändringshändelse. Det beror på Måste höjas om kontrollen stöder växlingskontrollmönster.
ExpandCollapseStateProperty egenskapsändringshändelse. Det beror på Måste aktiveras om kontrollen stöder kontrollmönstret Utöka och dölj.
ElementSelectedEvent Det beror på Ingen.

Nödvändiga UI Automation-händelser

I följande tabell visas de UI Automation-händelser som krävs för att stödjas av alla menyalternativkontroller. Mer information om händelser finns i UI Automation Events Overview.

UI Automation-händelse Support/värde Noteringar
InvokedEvent Det beror på Ingen
ElementAddedToSelectionEvent Det beror på Ingen
ElementRemovedFromSelectionEvent Det beror på Ingen
ElementSelectedEvent Det beror på Ingen
BoundingRectangleProperty egenskapsändringshändelse. Krävs Ingen
IsOffscreenProperty egenskapsändringshändelse. Krävs Ingen
IsEnabledProperty egenskapsändringshändelse. Krävs Ingen
ExpandCollapseStateProperty egenskapsändringshändelse. Det beror på Ingen
ToggleStateProperty egenskapsändringshändelse. Det beror på Ingen
AutomationFocusChangedEvent Krävs Ingen
StructureChangedEvent Krävs Ingen

Äldre problem

Växlingsmönster stöds endast när menyalternativet Win32 är markerat och det kan fastställas programmatiskt att det är nödvändigt att stödja växlingsmönster. Eftersom menyalternativet Win32 inte visar om det har möjlighet att kontrolleras stöds Anropa mönster när menyalternativet inte är markerat. Ett undantag görs för att alltid stödja Invoke Pattern även för menyalternativ som endast ska ha stöd för växlingsmönster. Detta gör att klienter inte blir förvirrade över att ett element som stöder Invoke Pattern (när menyalternativet avmarkerades) inte längre stöder mönstret när det har markerats.

Se även