Kontrollmönster för användargränssnittsautomatisering för klienter

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.

Den här översikten introducerar kontrollmönster för UI Automation-klienter. Den innehåller information om hur en UI Automation-klient kan använda kontrollmönster för att komma åt information om användargränssnittet (UI).

Kontrollmönster ger ett sätt att kategorisera och exponera en kontrolls funktioner oberoende av kontrolltypen eller kontrollens utseende. UI Automation-klienter kan undersöka ett AutomationElement för att avgöra vilka kontrollmönster som stöds och vara säkra på kontrollens beteende.

En fullständig lista över kontrollmönster finns i Översikt över UI Automation-kontrollmönster.

Hämta kontrollmönster

Klienter hämtar ett kontrollmönster från en AutomationElement genom att anropa antingen AutomationElement.GetCachedPattern eller AutomationElement.GetCurrentPattern.

Klienter kan använda GetSupportedPatterns metoden eller en enskild IsPatternAvailable egenskap (till exempel IsTextPatternAvailableProperty) för att avgöra om ett mönster eller en grupp med mönster stöds på AutomationElement. Det är dock mer effektivt att försöka hämta kontrollmönstret och testa för en null referens än att kontrollera de egenskaper som stöds och hämta kontrollmönstret eftersom det resulterar i färre korsprocessanrop.

I följande exempel visas hur du hämtar ett TextPattern kontrollmönster från en AutomationElement.

// Specify the control type we're looking for, in this case 'Document'
PropertyCondition cond = new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Document);

// target --> The root AutomationElement.
AutomationElement textProvider = target.FindFirst(TreeScope.Descendants, cond);

targetTextPattern = textProvider.GetCurrentPattern(TextPattern.Pattern) as TextPattern;

if (targetTextPattern == null)
{
    Console.WriteLine("Root element does not contain a descendant that supports TextPattern.");
    return;
}

Hämtar egenskaper för kontrollmönster

Klienter kan hämta egenskapsvärdena för kontrollmönster genom att anropa antingen AutomationElement.GetCachedPropertyValue eller AutomationElement.GetCurrentPropertyValue och casta objektet som returneras till en lämplig typ. Mer information om egenskaper för UI Automation finns i UI Automation Properties for Clients (Egenskaper för gränssnittsautomatisering för klienter).

Förutom GetPropertyValue metoderna kan egenskapsvärden hämtas via CLR-åtkomstorer (Common Language Runtime) för att få åtkomst till UI Automation-egenskaperna i ett mönster.

Kontroller med variabelmönster

Vissa kontrolltyper stöder olika mönster beroende på deras tillstånd eller hur kontrollen används. Exempel på kontroller som kan ha variabelmönster är listvyer (miniatyrer, paneler, ikoner, lista, information), Microsoft Excel-diagram (cirkel, linje, stapel, cellvärde med en formel), Microsoft Word-dokumentområde (Normal, Webblayout, Disposition, Utskriftslayout, Förhandsgranskning) och Microsoft Windows mediespelare skinn.

Kontroller som implementerar anpassade kontrolltyper kan ha alla typer av kontrollmönster som behövs för att representera deras funktioner.

Se även