Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Annotazioni
Questa documentazione è destinata agli sviluppatori .NET Framework che vogliono usare le classi di automazione interfaccia utente gestite definite nello spazio dei nomi System.Windows.Automation. Per le informazioni più recenti sull'automazione interfaccia utente, vedere API di automazione di Windows: Automazione interfaccia utente.
Questa panoramica introduce le proprietà di Automazione Interfaccia Utente come sono esposte alle applicazioni client di Automazione Interfaccia Utente.
Le proprietà sugli AutomationElement oggetti contengono informazioni sugli elementi dell'interfaccia utente, in genere controlli. Le proprietà di un oggetto AutomationElement sono generiche, ovvero non specifiche di un tipo di controllo. Molte di queste proprietà vengono esposte nella AutomationElement.AutomationElementInformation struttura .
I pattern di controllo hanno anche proprietà. Le proprietà dei pattern di controllo sono specifiche del modello. Ad esempio, ScrollPattern dispone di proprietà che consentono a un'applicazione client di individuare se una finestra è scorrevole verticalmente o orizzontalmente e quali sono le dimensioni della visualizzazione e le posizioni di scorrimento correnti. I pattern di controllo espongono tutte le relative proprietà tramite una struttura; ad esempio . ScrollPattern.ScrollPatternInformation
Le proprietà dell'automazione dell'interfaccia utente sono di sola lettura. Per impostare le proprietà di un controllo, è necessario utilizzare i metodi del pattern di controllo appropriato. Ad esempio, usare Scroll per modificare i valori di posizione di una finestra di scorrimento.
Per migliorare le prestazioni, i valori delle proprietà dei controlli e dei pattern di controllo possono essere memorizzati nella cache quando AutomationElement vengono recuperati gli oggetti. Per ulteriori informazioni, vedere Memorizzazione nella cache nei client di Automazione dell'interfaccia utente.
ID proprietà
Gli identificatori di proprietà (ID) sono valori costanti univoci e incapsulati in AutomationProperty oggetti. Le applicazioni client di automazione interfaccia utente ottengono questi ID dalla AutomationElement classe o dalla classe del pattern di controllo appropriata, ad esempio ScrollPattern. I provider di automazione interfaccia utente li ottengono da AutomationElementIdentifiers o da una delle classi di identificatori del pattern di controllo, ad esempio ScrollPatternIdentifiers.
Il numero Id di un AutomationProperty viene utilizzato dai fornitori per identificare le proprietà oggetto di query nel metodo IRawElementProviderSimple.GetPropertyValue. In generale, le applicazioni client non devono esaminare il Id. Il ProgrammaticName viene utilizzato solo per scopi di debug e diagnostica.
Condizioni delle proprietà
Gli ID delle proprietà vengono utilizzati per costruire oggetti PropertyCondition che servono a trovare oggetti AutomationElement. Ad esempio, potresti voler trovare un AutomationElement con un certo nome, o tutti i controlli che sono abilitati. Ognuno PropertyCondition specifica un AutomationProperty identificatore e il valore che la proprietà deve corrispondere.
Per altre informazioni, vedere gli argomenti di riferimento seguenti:
Recupero delle proprietà
Alcune proprietà di AutomationElement e tutte le proprietà di una classe di pattern di controllo sono esposte come proprietà annidate della proprietà Current o Cached dell'oggetto o del pattern di controllo AutomationElement.
Inoltre, qualsiasi proprietà del pattern di controllo AutomationElement, inclusa una proprietà non disponibile nella struttura Cached o Current, può essere recuperata utilizzando uno dei metodi seguenti.
Questi metodi offrono prestazioni leggermente migliori e l'accesso all'intera gamma di proprietà.
Nell'esempio di codice seguente vengono illustrati i due modi per recuperare una proprietà in un oggetto AutomationElement.
// elementList is an AutomationElement.
// The following two calls are equivalent.
string name = elementList.Current.Name;
name = elementList.GetCurrentPropertyValue(AutomationElement.NameProperty) as string;
' elementList is an AutomationElement.
' The following two calls are equivalent.
Dim name As String = elementList.Current.Name
name = CStr(elementList.GetCurrentPropertyValue(AutomationElement.NameProperty))
Per recuperare le proprietà dei pattern di controllo supportati da AutomationElement, non è necessario recuperare l'oggetto pattern di controllo. È sufficiente passare uno degli identificatori di proprietà del modello al metodo .
Nell'esempio di codice seguente vengono illustrati i due modi per recuperare una proprietà in un pattern di controllo.
// elementList is an AutomationElement representing a list box.
// Error-checking is omitted. Assume that elementList is known to support SelectionPattern.
SelectionPattern selectPattern =
elementList.GetCurrentPattern(SelectionPattern.Pattern) as SelectionPattern;
bool isMultipleSelect = selectPattern.Current.CanSelectMultiple;
// The following call is equivalent to the one above.
isMultipleSelect = (bool)
elementList.GetCurrentPropertyValue(SelectionPattern.CanSelectMultipleProperty);
' elementList is an AutomationElement representing a list box.
' Error-checking is omitted. Assume that elementList is known to support SelectionPattern.
Dim selectPattern As SelectionPattern = _
DirectCast(elementList.GetCurrentPattern(SelectionPattern.Pattern), SelectionPattern)
Dim isMultipleSelect As Boolean = selectPattern.Current.CanSelectMultiple
' The following call is equivalent to the one above.
isMultipleSelect = CBool(elementList.GetCurrentPropertyValue(SelectionPattern.CanSelectMultipleProperty))
I Get metodi restituiscono un oggetto Object. L'applicazione deve eseguire il cast dell'oggetto restituito al tipo appropriato prima di usare il valore .
Valori delle proprietà predefinite
Se un provider di automazione interfaccia utente non implementa una proprietà, il sistema di automazione interfaccia utente è in grado di fornire un valore predefinito. Ad esempio, se il provider per un controllo non supporta la proprietà identificata da HelpTextProperty, Automazione interfaccia utente restituisce una stringa vuota. Analogamente, se il provider non supporta la proprietà identificata da IsDockPatternAvailableProperty, Automazione interfaccia utente restituisce false.
È possibile modificare questo comportamento usando i sovraccarichi dei metodi AutomationElement.GetCachedPropertyValue e AutomationElement.GetCurrentPropertyValue. Quando si specifica true come secondo parametro, Automazione interfaccia utente non restituisce un valore predefinito, ma restituisce invece il valore NotSupportedspeciale .
Il codice di esempio seguente tenta di recuperare una proprietà da un elemento e, se la proprietà non è supportata, viene invece usato un valore definito dall'applicazione.
// elementList is an AutomationElement.
object help = elementList.GetCurrentPropertyValue(AutomationElement.HelpTextProperty, true);
if (help == AutomationElement.NotSupported)
{
help = "No help available";
}
string helpText = (string)help;
' elementList is an AutomationElement.
Dim help As Object = elementList.GetCurrentPropertyValue(AutomationElement.HelpTextProperty, True)
If help Is AutomationElement.NotSupported Then
help = "No help available"
End If
Dim helpText As String = CStr(help)
Per individuare le proprietà supportate da un elemento, usare GetSupportedProperties. Viene restituita una matrice di AutomationProperty identificatori.
Eventi di modifica della proprietà
Quando un valore della proprietà in un AutomationElement o in un pattern di controllo viene modificato, viene generato un evento. Un'applicazione può sottoscrivere tali eventi chiamando AddAutomationPropertyChangedEventHandler, fornendo una matrice di AutomationProperty identificatori come ultimo parametro per specificare le proprietà di interesse.
Nel AutomationPropertyChangedEventHandler, è possibile identificare la proprietà modificata controllando il membro Property degli argomenti di evento. Gli argomenti contengono anche i valori precedenti e nuovi della proprietà automazione interfaccia utente modificata. Questi valori sono di tipo Object e devono essere sottoposti a cast al tipo corretto prima di essere usati.
Proprietà di AutomationElement aggiuntive
Oltre alle strutture di Current proprietà e Cached , AutomationElement dispone delle proprietà seguenti, che vengono recuperate tramite funzioni di accesso alle proprietà semplici.
| Proprietà | Descrizione |
|---|---|
| CachedChildren | Raccolta di oggetti figlio AutomationElement presenti nella cache. |
| CachedParent | Oggetto AutomationElement padre che si trova nella cache. |
| FocusedElement | (Proprietà statica) Il AutomationElement che ha il focus di input. |
| RootElement | (Proprietà statica) la radice AutomationElement. |