Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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 azt ismerteti, hogy a Microsoft UI Automation hogyan teszi elérhetővé a beágyazott objektumokat vagy gyermekelemeket egy szöveges dokumentumban vagy tárolóban.
A felhasználói felületi automatizálásban a beágyazott objektumok olyan elemek, amelyek nem szöveges határokat tartalmazhatnak; például egy kép, hivatkozás, táblázat vagy dokumentumtípus, például Microsoft Excel-számolótábla vagy Microsoft Windows Media-fájl. Ez eltér a szabványos definíciótól, ahol egy elem jön létre az egyik alkalmazásban, és beágyazott vagy összekapcsolt egy másik alkalmazásban. Az, hogy az objektum szerkeszthető-e az eredeti alkalmazásban, irreleváns-e a felhasználói felület automatizálásának kontextusában.
Beágyazott objektumok és a felhasználói felület automatizálási fája
A beágyazott objektumok különálló elemekként lesznek kezelve a felhasználói felület automatizálási fájának vezérlőnézetében. A szövegtároló gyermekeiként jelennek meg, így ugyanazon a modellen keresztül érhetők el, mint a felhasználói felület automatizálásának más vezérlői.
Példa táblázatos, kép- és hivatkozásalapú beágyazott objektumokkal rendelkező szövegtárolóra
Példa az előző szövegtároló egy részének tartalomnézetére
Beágyazott objektumok felfedése TextPattern és TextPatternRange használatával
A vezérlőmintaosztály és az TextPatternTextPatternRange osztály együttesen olyan módszereket és tulajdonságokat tesz elérhetővé, amelyek megkönnyítik a beágyazott objektumok navigációját és lekérdezését.
Egy szövegtároló és egy beágyazott objektum szöveges tartalma (vagy belső szövege, például hivatkozás vagy táblázatcella) egyetlen, folyamatos szövegfolyamként jelenik meg a felhasználói felület Automation-fa vezérlő nézetében és tartalomnézetében is; az objektumhatárok figyelmen kívül lesznek hagyva. Ha egy UI Automation-ügyfél valamilyen módon szavatosítás, értelmezés vagy elemzés céljából kéri le a szöveget, a szövegtartományt speciális esetekre, például szöveges tartalommal vagy más beágyazott objektumokkal rendelkező táblázatra kell ellenőrizni. Ezt úgy érheti el, hogy meghívja a GetChildren-t, hogy minden beágyazott objektumhoz kapjon egy AutomationElement, majd meghívja a RangeFromChild-t, hogy minden elemhez kapjon egy szövegtartományt. Ez rekurzív módon történik, mindaddig, amíg az összes szöveges tartalmat le nem kérik.
Példa beágyazott objektumokat és azok tartományát tartalmazó szövegstreamre
Ha egy szövegtartomány tartalmának bejárása szükséges, a módszer sikeres végrehajtásához a háttérben lépések sorozatát hajtják végre Move.
A szövegtartomány normalizálva van; vagyis a szövegtartomány össze van csukva egy végponton Start lévő degenerátumtartományra, ami feleslegessé teszi a End végpontot. Ez a lépés a kétértelműség eltávolításához szükséges olyan helyzetekben, TextUnit amikor egy szövegtartomány határokat
{The URL https://www.microsoft.com is embedded in textfed le: például ahol a "{" és a "}" a szövegtartomány végpontja.Az eredményül kapott tartomány a DocumentRange-ban visszafelé kerül a kért TextUnit határ elejére.
A tartományt a kért számú DocumentRange határ mozgatja előre vagy hátraTextUnit.
A tartomány ezután ki lesz bontva egy degenerátumtartomány-állapotból úgy, hogy a End végpontot egy kért TextUnit határra helyezi át.
szerint Példák arra, hogyan van beállítva a szövegtartomány az Áthelyezés() és az ExpandToEnclosingUnit() műveleteknél
Gyakori forgatókönyvek
Az alábbi szakaszok példákat mutatnak be a beágyazott objektumokat tartalmazó leggyakoribb forgatókönyvekre.
Jelmagyarázat a bemutatott példákhoz:
{ = Start
} = End
Hivatkozás
1. példa – Beágyazott szöveges hivatkozást tartalmazó szövegtartomány
{The URL https://www.microsoft.com is embedded in text}.
| Hívott metódus | Eredmény |
|---|---|
| GetText | A The URL https://www.microsoft.com is embedded in textstringet adja vissza. |
| GetEnclosingElement | A szövegtartományt tartalmazó legbelső AutomationElement értéket adja vissza, ebben az esetben magát a AutomationElement szövegszolgáltatót. |
| GetChildren | A hivatkozásvezérlőt AutomationElement jelképező értéket ad vissza. |
RangeFromChild hol AutomationElement található az előző GetChildren metódus által visszaadott objektum. |
A tartományt adja vissza, amely a https://www.microsoft.com-t képviseli. |
2. példa – Egy beágyazott szöveghivatkozásra részben átnyúló szövegtartomány
Az URL-cím https://{[www]} szövegbe van ágyazva.
| Hívott metódus | Eredmény |
|---|---|
| GetText | A "www" karakterláncot adja vissza. |
| GetEnclosingElement | A szövegtartományt AutomationElement tartalmazó legbelső értéket adja vissza, ebben az esetben a hivatkozásvezérlőt. |
| GetChildren | Visszaadja null , mivel a szövegtartomány nem terjed ki a teljes URL-sztringre. |
3. példa – Szövegtartomány, amely részben lefedi egy szövegtároló tartalmát. A szövegtároló beágyazott szöveges hivatkozással rendelkezik, amely nem része a szövegtartománynak.
{The URL} [https://www.microsoft.com](https://www.microsoft.com) is embedded in text.
| Hívott metódus | Eredmény |
|---|---|
| GetText | Az "Url" sztringet adja vissza. |
| GetEnclosingElement | A szövegtartományt tartalmazó legbelső AutomationElement értéket adja vissza, ebben az esetben magát a AutomationElement szövegszolgáltatót. |
| Move paraméterekkel (TextUnit.Word, 1). | A szövegtartományt "http" értékre helyezi át, mivel a hivatkozás szövege egyéni szavakból áll. Ebben az esetben a hivatkozás nem egyetlen objektumként lesz kezelve. A(z) {[http]} URL-cím szövegbe van ágyazva. |
Kép
1. példa – Beágyazott képet tartalmazó szövegtartomány
{A
a szövegbe van ágyazva}.
| Hívott metódus | Eredmény |
|---|---|
| GetText | A "The is embedded in text" karakterláncot adja vissza. Az a képhez társított helyettesítő szöveget nem szabad elvárni, hogy szerepeljen a szövegfolyamban. |
| GetEnclosingElement | A szövegtartományt tartalmazó legbelső AutomationElement értéket adja vissza, ebben az esetben magát a AutomationElement szövegszolgáltatót. |
| GetChildren | A képvezérlőt AutomationElement jelképező értéket ad vissza. |
| RangeFromChild hol AutomationElement található az előző GetChildren metódus által visszaadott objektum. | A " " értéket képviselő degenerált tartományt adja vissza. |
2. példa – Szövegtartomány, amely részben lefedi egy szövegtároló tartalmát. A szövegtároló beágyazott képpel rendelkezik, amely nem része a szövegtartománynak.
{A kép}
szövegbe van ágyazva.
| Hívott metódus | Eredmény |
|---|---|
| GetText | A "Kép" sztringet adja vissza. |
| GetEnclosingElement | A szövegtartományt tartalmazó legbelső AutomationElement értéket adja vissza, ebben az esetben magát a AutomationElement szövegszolgáltatót. |
| Move paraméterekkel (TextUnit.Word, 1). | A szövegtartományt az "is" értékre helyezi át. Mivel csak a szöveges alapú beágyazott objektumok tekinthetők a szövegstream részének, a példában szereplő kép nincs hatással az Áthelyezésre vagy annak visszatérési értékére (ebben az esetben 1). |
Táblázat
Példákhoz használt táblázat
| Cella képpel | Cella szöveggel |
|---|---|
|
X |
|
Y |
Z képe |
Z |
1. példa – A szövegtároló lekérése egy cella tartalmából.
| Metódus meghívva | Eredmény |
|---|---|
| GetItem paraméterekkel (0, 0) | AutomationElement A táblázatcella tartalmát adja vissza. Ebben az esetben az elem egy szövegvezérlő. |
RangeFromChild hol AutomationElement található az előző GetItem metódus által visszaadott objektum. |
A által lefedett tartományt adja vissza. |
GetEnclosingElement az előző RangeFromChild metódus által visszaadott objektumhoz. |
AutomationElement A táblázatcellát képviselő értéket adja vissza. Ebben az esetben az elem egy olyan szövegvezérlő, amely támogatja a TableItemPattern függvényt. |
GetEnclosingElement az előző GetEnclosingElement metódus által visszaadott objektumhoz. |
A táblát AutomationElement képviselő értéket adja vissza. |
GetEnclosingElement az előző GetEnclosingElement metódus által visszaadott objektumhoz. |
AutomationElement A szövegszolgáltatót jelképező értéket adja vissza. |
2. példa – Cella szöveges tartalmának lekérése.
| Metódus meghívva | Eredmény |
|---|---|
| GetItem az (1,1) paraméterekkel. | AutomationElement A táblázatcella tartalmát adja vissza. Ebben az esetben az elem egy szövegvezérlő. |
RangeFromChild hol AutomationElement található az előző GetItem metódus által visszaadott objektum. |
Az "Y" értéket adja vissza. |
Lásd még
- TextPattern
- TextPatternRange
- ITextProvider
- ITextRangeProvider
- Beágyazott objektumok elérése felhasználói felületi automatizálással
- Tábla tartalmának elérhetővé tétele felhasználói felületi automatizálással
- Szöveg átjárása a felhasználói felület automatizálásával
- TextPattern keresési és kijelölési minta