Stöd för användargränssnittsautomatisering för DataItem-kontrolltypen
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 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 Översikt över UI Automation Tree.
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).
Property | Värde | Kommentar |
---|---|---|
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. |
ControlTypeProperty | Dataitem | Det här värdet är detsamma för alla gränssnittsramverk. |
IsContentElementProperty | Sant | Kontrollen för dataobjekt måste alltid vara innehåll. |
IsControlElementProperty | Sant | 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 Översikt över UI Automation-kontrollmönster.
Kontrollmönster | Support | Kommentar |
---|---|---|
IExpandCollapseProvider | Beror | Om dataobjektet kan expanderas eller komprimeras för att visa och dölja information måste mönstret Expandera dölj stödjas. |
IGridItemProvider | Beror | 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 | Beror | Alla dataobjekt stöder möjligheten att rullas in i vyn med mönstret Rullningsobjekt när deras datacontainer har fler objekt än vad som får plats 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 | Beror | Om dataobjektet finns i en Data Grid-kontrolltyp stöder det det här mönstret. |
IToggleProvider | Beror | Om dataobjektet innehåller ett tillstånd som kan växlas igenom. |
IValueProvider | Beror | 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
UI Automation-elementet för dataobjektet returnerar Microsoft Windows Explorer-ärendet korrekt och gör att fokus anges till underträdet Redigera i dataobjektet.
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 Översikt över UI Automation-händelser.
UI Automation-händelse | Support | Kommentar |
---|---|---|
AutomationFocusChangedEvent | Obligatoriskt | Ingen |
BoundingRectangleProperty händelse som ändrats av egenskapen. | Obligatoriskt | Ingen |
IsEnabledProperty händelse som ändrats av egenskapen. | Obligatoriskt | Ingen |
IsOffscreenProperty händelse som ändrats av egenskapen. | Obligatoriskt | Ingen |
NameProperty händelse som ändrats av egenskapen. | Obligatoriskt | Ingen |
StructureChangedEvent | Obligatoriskt | Ingen |
InvokedEvent | Beror | Ingen |
ExpandCollapseStateProperty händelse som ändrats av egenskapen. | Beror | Ingen |
ElementAddedToSelectionEvent | Obligatoriskt | Ingen |
ElementRemovedFromSelectionEvent | Obligatoriskt | Ingen |
ElementSelectedEvent | Obligatoriskt | Ingen |
ToggleStateProperty händelse som ändrats av egenskapen. | Beror | Ingen |
ValueProperty händelse som ändrats av egenskapen. | Beror | 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.
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 Data Grid-värdkontrollen.
Träd för gränssnittsautomatisering – kontrollvy | Träd för gränssnittsautomatisering – innehållsvy |
---|---|
- Gruppera "Contoso" (tabell, rutnät) – DataItem "Accounts Receivable.doc" (TableItem, GridItem, SelectionItem, Invoke) – Bild av "Konton Receivable.doc" – Redigera "Name" (TableItem, GridItem, Value "Accounts Receivable.doc") – Redigera "Ändrad datum" (TableItem, GridItem, värde "2006-08-25 15:29") – Redigera "Size" (GridItem, TableItem, Value "11.0 KB) – DataItem "Accounts Payable.doc" (TableItem, GridItem, SelectionItem, Invoke) - ... |
- Gruppera "Contoso" (tabell, rutnät) – DataItem "Accounts Receivable.doc" (TableItem, GridItem, SelectionItem, Invoke) – Bild av "Konton Receivable.doc" – Redigera "Name" (TableItem, GridItem, Value "Accounts Receivable.doc") – Redigera "Ändrad datum" (TableItem, GridItem, värde "2006-08-25 15:29") – Redigera "Size" (GridItem, TableItem, Value "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 ("Konton Receivable.doc" och "Konton Payable.doc") under Grupp ("Contoso") förbättras genom att de exponeras som ListItem-kontrolltyper eftersom den typen redan stöder SelectionItem-kontrollmönstret.