Megosztás a következőn keresztül:


Felhasználói felület automatizálási tulajdonságai ügyfeleknek

Megjegyzés:

Ez a dokumentáció azoknak a .NET-keretrendszer-fejlesztőknek készült, akik a System.Windows.Automation névtérben definiált felügyelt felhasználói felületi Automation-osztályokat szeretnék használni. A felhasználói felület automatizálásával kapcsolatos legfrissebb információkért lásd Windows Automation API: UI Automation.

Ez az áttekintés bemutatja a felhasználói felület automatizálási tulajdonságait, mivel azok a felhasználói felületi Automation-ügyfélalkalmazások számára vannak közzétéve.

Az objektumok tulajdonságai AutomationElement információkat tartalmaznak a felhasználói felület (UI) elemeiről, általában a vezérlőkről. A AutomationElement tulajdonságai általános jellegűek, vagyis nem vonatkoznak semmilyen konkrét vezérlőtípusra. Ezek közül a tulajdonságok közül sok a struktúrában AutomationElement.AutomationElementInformation van közzétéve.

A vezérlőmintáknak is vannak tulajdonságai. A vezérlőminták tulajdonságai a mintára vonatkoznak. Vannak például olyan tulajdonságai, amelyek lehetővé teszik az ügyfélalkalmazás számára annak felderítését, ScrollPattern hogy egy ablak függőlegesen vagy vízszintesen görgethető-e, és hogy az aktuális nézet mérete és görgetési pozíciói milyenek. A szabályozási minták az összes tulajdonságukat egy struktúrán keresztül teszik elérhetővé; például ScrollPattern.ScrollPatternInformation.

A felhasználói felület automatizálási tulajdonságai csak olvashatók. Egy vezérlő tulajdonságainak beállításához a megfelelő vezérlőminta metódusait kell használnia. Például egy görgetőablak pozícióértékeinek módosítására használható Scroll .

A teljesítmény javítása érdekében a vezérlők és a vezérlőminták tulajdonságértékei gyorsítótárazhatók az objektumok lekérésekor AutomationElement . További információért lásd: Gyorsítótárazás a felhasználói felület automatizálási klienseiben.

Tulajdonságazonosítók

A tulajdonságazonosítók (azonosítók) egyedi, állandó értékek, amelyek objektumokba AutomationProperty vannak ágyazva. A UI Automation ügyfélalkalmazásai ezeket az azonosítókat az AutomationElement osztályból vagy a megfelelő vezérlőminta-osztályból szerzik be, például ScrollPattern. A felhasználói felületi automatizálási szolgáltatók ezeket AutomationElementIdentifiers-ból vagy a vezérlőminta-azonosító osztályok egyikéből kapják meg, például ScrollPatternIdentifiersből.

A szolgáltatók egy Id numerikus AutomationProperty-át használják a IRawElementProviderSimple.GetPropertyValue metódusban lekérdezett tulajdonságok azonosítására. Az ügyfélalkalmazások általában nem kell vizsgálniuk a Id. Ez ProgrammaticName csak hibakeresési és diagnosztikai célokra használható.

Tulajdonságfeltételek

Az objektumok keresésére szolgáló PropertyCondition objektumok létrehozásához AutomationElement tulajdonságazonosítókat használunk. Előfordulhat például, hogy olyan nevet AutomationElement szeretne találni, amelynek van egy bizonyos neve, vagy az összes engedélyezett vezérlő. Mindegyik PropertyCondition megadja az azonosítót AutomationProperty és az értéket, amelyet a tulajdonságnak meg kell egyeznie.

További információkért tekintse meg a következő referenciatémaköreket:

Tulajdonságok beolvasása

A AutomationElement néhány tulajdonsága és a vezérlőminta-osztály összes tulajdonsága beágyazott tulajdonságként van kitéve, mint a Current vagy Cached tulajdonsága a AutomationElement vagy vezérlőminta objektumának.

Ezenkívül bármely AutomationElement vagy vezérlőminta tulajdonság, beleértve a szerkezetben CachedCurrent nem elérhető tulajdonságot is, az alábbi módszerek egyikével kérhető le:

Ezek a módszerek valamivel jobb teljesítményt nyújtanak, valamint hozzáférést biztosítanak a tulajdonságok teljes tartományához.

Az alábbi példakód egy tulajdonság beolvasásának két módját mutatja be.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))

A vezérlőminta által AutomationElementtámogatott tulajdonságok lekéréséhez nem kell lekérnie a vezérlőminta-objektumot. Egyszerűen adja át a mintatulajdonság-azonosítók egyikét a metódusnak.

Az alábbi példakód egy tulajdonság vezérlőelem-mintán való beolvasásának két módját mutatja be.

// 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))

A Get metódusok egy Object-t visszaadnak. Az alkalmazásnak az érték használata előtt a visszaadott objektumot a megfelelő típusra kell leadnia.

Alapértelmezett tulajdonságértékek

Ha egy felhasználói felületi automatizálási szolgáltató nem valósít meg tulajdonságot, a felhasználói felület automatizálási rendszere képes megadni egy alapértelmezett értéket. Ha például egy vezérlő szolgáltatója nem támogatja a megadott tulajdonságot HelpTextProperty, a felhasználói felületi automation egy üres sztringet ad vissza. Hasonlóképpen, ha a szolgáltató nem támogatja a IsDockPatternAvailableProperty által azonosított tulajdonságot, a UI Automation visszatér false.

Megváltoztathatja ezt a viselkedést a AutomationElement.GetCachedPropertyValue és AutomationElement.GetCurrentPropertyValue metódustúlterhelésekkel. Amikor a második paramétert adja meg true , a felhasználói felület automatizálása nem az alapértelmezett értéket adja vissza, hanem a speciális értéket NotSupportedadja vissza.

Az alábbi példakód egy tulajdonságot próbál lekérni egy elemből, és ha a tulajdonság nem támogatott, az alkalmazás által definiált érték lesz használva.

// 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)

Ha szeretné felderíteni, hogy egy elem milyen tulajdonságokat támogat, használja a következőt GetSupportedProperties: . Ez egy azonosítótömböt AutomationProperty ad vissza.

Tulajdonság-változási események

Amikor egy AutomationElement vagy egy vezérlőminta tulajdonságértéke megváltozik, esemény keletkezik. Az alkalmazás előfizethet ilyen eseményekre úgy, hogy meghívja a AddAutomationPropertyChangedEventHandler függvényt, és az utolsó paraméterként megadja AutomationProperty azonosítók egy tömbjét, hogy megjelölje a kívánt tulajdonságokat.

AutomationPropertyChangedEventHandler A Property tag ellenőrzésével az esemény argumentumaiban azonosíthatja a megváltozott tulajdonságot. Az argumentumok a felhasználói felület automation tulajdonságának régi és új értékeit is tartalmazzák, amelyek módosultak. Ezek az értékek típus Object típusúak, és használat előtt a megfelelő típusra kell őket leadni.

További AutomationElement-tulajdonságok

A Current és Cached tulajdonságstruktúrákon túl a AutomationElement a következő tulajdonságokat tartalmazza, amelyeket egyszerű tulajdonsághozzáférők segítségével kérhetünk le.

Ingatlan Leírás
CachedChildren A gyorsítótárban található gyermekobjektumok AutomationElement gyűjteménye.
CachedParent A AutomationElement gyorsítótárban található szülőobjektum.
FocusedElement (Statikus tulajdonság) A AutomationElement elem, amely rendelkezik a bemeneti fókuszával.
RootElement (Statikus tulajdonság) A gyökér AutomationElement.

Lásd még