Stöd för användargränssnittsautomatisering för DataItem-kontrolltypen

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 DataItem-kontrolltypen. I UI Automation är en kontrolltyp en uppsättning villkor som en kontroll måste uppfylla för att kunna använda egenskapen ControlTypeProperty . Villkoren innehåller specifika riktlinjer för UI Automation-trädstruktur, UI Automation-egenskapsvärden och kontrollmönster.

En post i en kontaktlista är ett exempel på en dataobjektkontroll. En kontroll av dataobjekt innehåller information som är av intresse för en slutanvändare. Det är mer komplicerat än det enkla listobjektet eftersom det innehåller mer information.

Följande avsnitt definierar den nödvändiga UI Automation-trädstrukturen, egenskaper, kontrollmönster och händelser för DataItem-kontrolltypen. UI Automation-kraven gäller för alla kontroller för dataobjekt, oavsett om 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 avser kontroller för dataobjekt och beskriver vad som kan finnas i varje vy. Mer information om UI Automation-trädet finns i UI Automation Tree Overview.

Träd för gränssnittsautomatisering – kontrollvy Träd för gränssnittsautomatisering – innehållsvy
DataItem

– Varierar (0 eller fler; kan struktureras i hierarkin)
DataItem

– Varierar (0 eller fler; kan struktureras i hierarkin)

Ett dataobjektelement i ett datarutnät kan vara värd för en mängd olika objekt, inklusive ett annat lager med dataobjekt eller specifika rutnätselement som text, bilder eller redigeringskontroller. Om dataobjektelementet har en specifik objektroll ska elementet exponeras som en specifik kontrolltyp. Till exempel en ListItem-kontrolltyp för ett valbart dataobjekt i rutnätet.

Nödvändiga egenskaper för UI Automation

I följande tabell visas de egenskaper vars värde eller definition är särskilt relevant för kontroller av dataobjekt. 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 Noteringar
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.
ControlTypeProperty DataItem Det här värdet är detsamma för alla gränssnittsramverk.
IsContentElementProperty Sann Kontrollen för dataobjekt måste alltid vara innehåll.
IsControlElementProperty Sann Kontrollen för dataobjekt måste alltid vara en kontroll.
IsKeyboardFocusableProperty Se anteckningar. Om kontrollen kan få tangentbordsfokus måste den ha stöd för den här egenskapen.
ItemStatusProperty Se anteckningar. Om kontrollen innehåller status som uppdateras dynamiskt måste den här egenskapen stödjas så att en hjälpmedelsteknik kan ta emot uppdateringar när elementets status ändras.
ItemTypeProperty Se anteckningar. Det här är strängvärdet som förmedlar det underliggande objektet som objektet representerar till slutanvändaren. Exempel är "Media File" eller "Contact".
LabeledByProperty Null Dataobjektkontroller har ingen statisk textetikett.
LocalizedControlTypeProperty "dataobjekt" Lokaliserad sträng som motsvarar DataItem-kontrolltypen.
NameProperty Se anteckningar. Kontrollen för dataobjekt innehåller alltid ett primärt textelement som relaterar till vad användaren skulle associera som den mest semantiska identifieraren för objektet.

Nödvändiga UI Automation-kontrollmönster

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

Kontrollmönster Stöd Noteringar
IExpandCollapseProvider Det beror på Om dataobjektet kan expanderas eller komprimeras för att visa och dölja information måste mönstret Expandera dölj stödjas.
IGridItemProvider Det beror på Dataobjekt stöder rutnätsobjektmönstret när en samling dataobjekt är tillgängliga i en container som kan navigeras rumsligt från objekt till objekt.
IScrollItemProvider Det beror på Alla dataobjekt stöder möjligheten att skrollas i visningen med scrollningsmönstret när deras databehållare har fler objekt än som ryms på skärmen.
ISelectionItemProvider Ja Alla dataobjekt måste ha stöd för mönstret Markeringsobjekt för att indikera när objektet är markerat.
ITableItemProvider Det beror på Om dataobjektet finns i en Data Grid-kontrolltyp stöder det det här mönstret.
IToggleProvider Det beror på Om dataobjektet innehåller ett tillstånd som kan växlas igenom.
IValueProvider Det beror på Om dataobjektets primära text kan redigeras måste mönstret Värde stödjas.

Arbeta med dataobjekt i stora listor

Stora listor är ofta datavirtualiserade inom användargränssnittsramverk för att hjälpa till med prestanda. På grund av detta kan en UI Automation-klient inte använda UI Automation-frågefunktionen för att skrapa innehållet i det fullständiga trädet på samma sätt som i andra objektcontainrar. En klient bör rulla objektet i vyn (eller expandera kontrollen för att visa alla värdefulla alternativ)innan du får åtkomst till den fullständiga uppsättningen information från dataobjektet.

När du anropar SetFocus på UI Automation-elementet för dataobjektet kommer Microsoft Windows Explorer-fallet att returnera korrekt och göra att fokus sätts till Redigera i dataobjektets underträd.

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 kontroller för dataobjekt. Mer information om händelser finns i UI Automation Events Overview.

UI Automation-händelse Stöd Noteringar
AutomationFocusChangedEvent Krävs Ingen
BoundingRectangleProperty egenskapsändringshändelse. Krävs Ingen
IsEnabledProperty egenskapsändringshändelse. Krävs Ingen
IsOffscreenProperty egenskapsändringshändelse. Krävs Ingen
NameProperty egenskapsändringshändelse. Krävs Ingen
StructureChangedEvent Krävs Ingen
InvokedEvent Det beror på Ingen
ExpandCollapseStateProperty egenskapsändringshändelse. Det beror på Ingen
ElementAddedToSelectionEvent Krävs Ingen
ElementRemovedFromSelectionEvent Krävs Ingen
ElementSelectedEvent Krävs Ingen
ToggleStateProperty egenskapsändringshändelse. Det beror på Ingen
ValueProperty egenskapsändringshändelse. Det beror på Ingen

Exempel på DataItem-kontrolltyp

Följande bild visar en DataItem-kontrolltyp i en listvykontroll med stöd för omfattande information för kolumnerna.

Bild av en listvykontroll med två dataobjekt

Kontrollvyn och innehållsvyn för UI Automation-trädet som gäller för dataobjektkontrollen visas nedan. Kontrollmönstren för varje automationselement visas inom parenteser. Gruppen "Contoso" är också en del av rutnätet i värdkontrollen för Data Grid.

Träd för gränssnittsautomatisering – kontrollvy Träd för gränssnittsautomatisering – innehållsvy
- Grupp "Contoso" (Tabell, Rutnät)
– DataItem "Accounts Receivable.doc" (TableItem, GridItem, SelectionItem, Invoke)
– Bild av "Kundfordringar.doc"
– Redigera "Namn" (TableItem, GridItem, Value "Accounts Receivable.doc")
– Redigera "Ändrad datum" (TableItem, GridItem, värde "2006-08-25 15:29")
– Redigera "Storlek" (GridItem, TableItem, värde "11.0 KB)
– DataItem "Accounts Payable.doc" (TableItem, GridItem, SelectionItem, Invoke)
- ...
- Grupp "Contoso" (Tabell, Rutnät)
– DataItem "Accounts Receivable.doc" (TableItem, GridItem, SelectionItem, Invoke)
– Bild av "Kundfordringar.doc"
– Redigera "Namn" (TableItem, GridItem, Value "Accounts Receivable.doc")
– Redigera "Ändrad datum" (TableItem, GridItem, värde "2006-08-25 15:29")
– Redigera "Storlek" (GridItem, TableItem, värde "11.0 KB)
– DataItem "Accounts Payable.doc" (TableItem, GridItem, SelectionItem, Invoke)
- …

Om ett rutnät representerar en lista över valbara objekt kan motsvarande gränssnittselement exponeras med ListItem-kontrolltypen i stället för DataItem-kontrolltypen. I föregående exempel kan DataItem-elementen ("Kundfordringar.doc" och "Leverantörsskulder.doc") under gruppen ("Contoso") förbättras genom att de exponeras som ListItem-kontrolltyper eftersom den typen redan stöder kontrollmönstret SelectionItem.

Se även