Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Opmerking
Deze documentatie is bedoeld voor .NET Framework-ontwikkelaars die de beheerde UI Automation-klassen willen gebruiken die zijn gedefinieerd in de System.Windows.Automation naamruimte. Zie Windows Automation-API: UI Automationvoor de meest recente informatie over UI Automation.
In dit overzicht maakt u kennis met UI Automation-eigenschappen wanneer deze worden blootgesteld aan UI Automation-clienttoepassingen.
Eigenschappen voor AutomationElement objecten bevatten informatie over elementen van de gebruikersinterface (UI), meestal besturingselementen. De eigenschappen van een AutomationElement zijn algemeen, dat wil zeggen, niet specifiek voor een besturingselementtype. Veel van deze eigenschappen worden weergegeven in de AutomationElement.AutomationElementInformation structuur.
Controlepatronen hebben ook eigenschappen. De eigenschappen van besturingspatronen zijn specifiek voor het patroon. Heeft bijvoorbeeld ScrollPattern eigenschappen waarmee een clienttoepassing kan detecteren of een venster verticaal of horizontaal schuifbaar is en wat de huidige weergavegrootten en schuifposities zijn. Controlepatronen maken al hun eigenschappen zichtbaar via een structuur; bijvoorbeeld ScrollPattern.ScrollPatternInformation.
Eigenschappen van UI-automatisering zijn alleen lezen. Als u eigenschappen van een besturingselement wilt instellen, moet u de methoden van het juiste besturingspatroon gebruiken. Gebruik Scroll bijvoorbeeld om de positiewaarden van een schuifvenster te wijzigen.
Om de prestaties te verbeteren, kunnen eigenschapswaarden van besturingselementen en besturingspatronen in de cache worden opgeslagen wanneer AutomationElement objecten worden opgehaald. Zie Caching in UI Automation-clients voor meer informatie.
Eigenschap-ID's
Eigenschaps-id's (ID's) zijn unieke, constante waarden die zijn ingekapseld in AutomationProperty objecten. UI Automation-clienttoepassingen krijgen deze id's van de AutomationElement klasse of van de juiste controlepatroonklasse, zoals ScrollPattern. UI Automation-providers halen ze op uit AutomationElementIdentifiers of uit een van de klassen besturingspatroon-id's, zoals ScrollPatternIdentifiers.
De numerieke Id van een AutomationProperty wordt door providers gebruikt om te bepalen welke eigenschappen bevraagd worden in de IRawElementProviderSimple.GetPropertyValue methode. In het algemeen hoeven clienttoepassingen de Id niet te onderzoeken. De ProgrammaticName wordt alleen voor foutopsporing en diagnostische doeleinden gebruikt.
Eigendomsvoorwaarden
De eigenschap-id's worden gebruikt bij het maken van PropertyCondition-objecten die gebruikt worden om AutomationElement-objecten te zoeken. U kunt bijvoorbeeld zoeken naar een AutomationElement dat een bepaalde naam heeft, of naar alle ingeschakelde besturingselementen. Elk PropertyCondition geeft een AutomationProperty identificatie op en de waarde waarmee de eigenschap moet overeenkomen.
Zie de volgende naslagonderwerpen voor meer informatie:
Eigenschappen ophalen
Sommige eigenschappen van AutomationElement en alle eigenschappen van een controlepatroonklasse worden weergegeven als geneste eigenschappen van de Current of Cached eigenschap van het AutomationElement-object of controlepatroonobject.
Bovendien kan een AutomationElement eigenschap of besturingselementpatroon, met inbegrip van een eigenschap die niet beschikbaar is in de Cached of Current structuur, worden opgehaald met behulp van een van de volgende methoden:
Deze methoden bieden iets betere prestaties en toegang tot het volledige scala aan eigenschappen.
In het volgende codevoorbeeld ziet u de twee manieren om een eigenschap op te halen op een 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))
Als u eigenschappen van besturingspatronen wilt ophalen die worden ondersteund door de AutomationElementbesturingspatronen, hoeft u het object van het besturingspatroon niet op te halen. Geef een van de identificatoren van de patrooneigenschap door aan de methode.
In het volgende codevoorbeeld ziet u de twee manieren om een eigenschap op te halen voor een besturingselementpatroon.
// 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))
De Get methoden retourneren een Object. De toepassing moet het geretourneerde object casten naar het juiste type voordat de waarde wordt gebruikt.
Standaardeigenschapswaarden
Als een UI Automation-provider geen eigenschap implementeert, kan het UI Automation-systeem een standaardwaarde opgeven. Als de provider voor een besturingselement bijvoorbeeld geen ondersteuning biedt voor de eigenschap die door HelpTextProperty wordt geïdentificeerd, retourneert UI Automation een lege tekenreeks. Als de provider de eigenschap die is geïdentificeerd met IsDockPatternAvailableProperty niet ondersteunt, retourneert UI Automation false.
U kunt dit gedrag wijzigen door gebruik te maken van de AutomationElement.GetCachedPropertyValue en AutomationElement.GetCurrentPropertyValue methode-overloads. Wanneer u true als de tweede parameter opgeeft, retourneert UI Automation geen standaardwaarde, maar wordt in plaats daarvan de speciale waarde NotSupported geretourneerd.
De volgende voorbeeldcode probeert een eigenschap op te halen uit een element en als de eigenschap niet wordt ondersteund, wordt in plaats daarvan een door de toepassing gedefinieerde waarde gebruikt.
// 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)
Als u wilt ontdekken welke eigenschappen worden ondersteund door een element, gebruikt u GetSupportedProperties. Hiermee wordt een matrix met AutomationProperty id's geretourneerd.
Eigenschap-veranderde gebeurtenissen
Wanneer een eigenschapswaarde voor een AutomationElement of controlepatroon verandert, wordt er een gebeurtenis gegenereerd. Een toepassing kan zich abonneren op dergelijke gebeurtenissen door AddAutomationPropertyChangedEventHandlereen reeks met AutomationProperty identificatoren op te geven als laatste parameter om de eigenschappen van belang op te specificeren.
In de AutomationPropertyChangedEventHandler kunt u de eigenschap identificeren die is gewijzigd door het Property onderdeel van de gebeurtenisargumenten te controleren. De argumenten bevatten ook de oude en nieuwe waarden van de eigenschap UI Automation die is gewijzigd. Deze waarden zijn van het type Object en moeten worden omgezet naar het juiste type voordat ze worden gebruikt.
Aanvullende AutomationElement-eigenschappen
Naast de eigenschapsstructuren van Current en Cached heeft AutomationElement de volgende eigenschappen, die worden opgehaald via eenvoudige eigenschapstoegangsregels.
| Vastgoed | Beschrijving |
|---|---|
| CachedChildren | Een verzameling kind AutomationElement objecten die zich in de cache bevinden. |
| CachedParent | Een AutomationElement bovenliggend object dat zich in de cache bevindt. |
| FocusedElement | (Statische eigenschap) AutomationElement die de invoerfocus heeft. |
| RootElement | (Statische eigenschap) De root AutomationElement. |