Pattern di controllo di automazione interfaccia utente per i client

Nota

Questa documentazione è destinata agli sviluppatori .NET Framework che desiderano utilizzare le classi di Automazione interfaccia utente gestite definite nello spazio dei nomi System.Windows.Automation. Per informazioni aggiornate su UI Automation, vedere API di automazione di Windows: UI Automation.

In questa panoramica vengono presentati i pattern di controllo per i client di automazione interfaccia utente. Sono incluse informazioni su come un client di automazione interfaccia utente può usare i pattern di controllo per accedere alle informazioni relative all'interfaccia utente.

I pattern di controllo rappresentano un metodo di classificazione ed esposizione della funzionalità di un controllo indipendentemente dal tipo o dall'aspetto del controllo stesso. I client di automazione interfaccia utente possono esaminare un AutomationElement per determinare quali pattern di controllo sono supportati e verificare il comportamento del controllo.

Per un elenco completo dei pattern di controllo, vedere UI Automation Control Patterns Overview.

Recupero dei pattern di controllo

I client possono ottenere pattern di controllo da AutomationElement con una chiamata a AutomationElement.GetCachedPattern o a AutomationElement.GetCurrentPattern.

I client possono usare il metodo GetSupportedPatterns o una singola proprietà IsPatternAvailable (ad esempio, IsTextPatternAvailableProperty) per determinare se un pattern o un gruppo di pattern è supportato in AutomationElement. È tuttavia più efficiente tentare di ottenere il pattern di controllo e verificare la presenza di un riferimento null anziché controllare le proprietà supportate e recuperare il pattern di controllo, poiché ciò comporta un numero inferiore di chiamate tra processi.

Nell'esempio seguente viene illustrato come ottenere un TextPattern pattern di controllo da 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;
}

Recupero delle proprietà per i pattern di controllo

I client possono recuperare i valori delle proprietà dei pattern di controllo con una chiamata a AutomationElement.GetCachedPropertyValue o a AutomationElement.GetCurrentPropertyValue e con il cast dell'oggetto restituito a un tipo appropriato. Per maggiori informazioni sulle proprietà di UI Automation, vedere Proprietà di UI Automation per i client.

Oltre che con i metodi GetPropertyValue, è possibile recuperare i valori delle proprietà tramite le funzioni di accesso CLR (Common Language Runtime) per accedere alle proprietà UI Automation di un pattern.

Controlli con pattern variabili

Alcuni tipi di controllo supportano pattern diversi a seconda dello stato del controllo o del modo in cui questo viene usato. Esempi di controlli che possono avere pattern variabili sono le visualizzazioni elenco (anteprime, riquadri, icone, elenchi, dettagli), grafici Microsoft Excel (a torta, a righe, a barre, valore della cella con una formula), le aree documento di Microsoft Word (Normale, Layout Web, Struttura, Layout di stampa, Anteprima di stampa) e le interfacce personalizzate di Microsoft Windows Media Player.

I controlli che implementano i tipi di controllo personalizzati possono disporre di qualsiasi set di pattern di controllo necessario per la rappresentazione delle funzionalità dei controlli stessi.

Vedi anche