Stöd för användargränssnittsautomatisering för kontrolltypen MenuItem
Kommentar
Den här dokumentationen System.Windows.Automation är avsedd för .NET Framework-utvecklare som vill använda de hanterade UI Automation-klasserna som definierats i namnområdet. 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 Nytt, Öppna och Stäng), som kan expanderas för att visa ytterligare menyalternativ 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"
|
MenuItem "Hjälp" - MenuItem "Hjälpämnen" - MenuItem "Om Anteckningar" |
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).
Property | 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 åsidosätter du och anger 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 | Menuitem | Det här värdet är detsamma för alla gränssnittsramverk. |
LocalizedControlTypeProperty | "menyalternativ" | Lokaliserad sträng som motsvarar kontrolltypen MenuItem. |
IsContentElementProperty | Sant | Menyalternativkontrollen ingår aldrig i innehållsvyn i UI Automation-trädet. |
IsControlElementProperty | Sant | 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 Översikt över UI Automation-kontrollmönster.
Egenskap för kontrollmönster | Support | Kommentar |
---|---|---|
IExpandCollapseProvider | Beror | Om kontrollen kan expanderas eller komprimeras implementerar du IExpandCollapseProvider. |
IInvokeProvider | Beror | Om kontrollen kör en enda åtgärd eller ett kommando implementerar du IInvokeProvider. |
IToggleProvider | Beror | Om kontrollen representerar ett alternativ som kan aktiveras eller inaktiveras implementerar du IToggleProvider. |
ISelectionItemProvider | Beror | 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 menyalternativ
I följande tabell visas de Microsoft UI Automation-händelser som är associerade med menyalternativkontrollen.
Event | Support | Förklaring |
---|---|---|
InvokedEvent | Beror | Måste aktiveras om kontrollen stöder mönstret Anropa kontroll. |
ToggleStateProperty händelse som ändrats av egenskapen. | Beror | Måste aktiveras om kontrollen stöder växla kontrollmönster. |
ExpandCollapseStateProperty händelse som ändrats av egenskapen. | Beror | Måste aktiveras om kontrollen stöder mönstret Visa dölj kontroll. |
ElementSelectedEvent | Beror | Inga. |
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 Översikt över UI Automation-händelser.
UI Automation-händelse | Support/värde | Kommentar |
---|---|---|
InvokedEvent | Beror | Ingen |
ElementAddedToSelectionEvent | Beror | Ingen |
ElementRemovedFromSelectionEvent | Beror | Ingen |
ElementSelectedEvent | Beror | Ingen |
BoundingRectangleProperty händelse som ändrats av egenskapen. | Obligatoriskt | Ingen |
IsOffscreenProperty händelse som ändrats av egenskapen. | Obligatoriskt | Ingen |
IsEnabledProperty händelse som ändrats av egenskapen. | Obligatoriskt | Ingen |
ExpandCollapseStateProperty händelse som ändrats av egenskapen. | Beror | Ingen |
ToggleStateProperty händelse som ändrats av egenskapen. | Beror | Ingen |
AutomationFocusChangedEvent | Obligatoriskt | Ingen |
StructureChangedEvent | Obligatoriskt | Ingen |
Äldre problem
Växlingsmönster stöds endast när menyalternativet Win32 är markerat och kan fastställas programmatiskt för 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.