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.
A IInvokeProviderimplementálására vonatkozó irányelveket és konvenciókat ismerteti, beleértve a metódusokkal kapcsolatos információkat is. A Meghívás vezérlőminta olyan vezérlők támogatására szolgál, amelyek aktiváláskor nem tartanak fenn állapotot, hanem egyetlen, egyértelmű műveletet kezdeményeznek vagy hajtanak végre.
Az állapotot fenntartó vezérlőknek, például a jelölőnégyzetek és a választógombok helyett IToggleProvider és ISelectionProvider kell implementálniuk. A vezérlőmintát megvalósító vezérlők példáiért lásd vezérlőtípusokat és azok támogatott vezérlőmintáit.
Ez a témakör a következő szakaszokat tartalmazza.
Végrehajtási irányelvek és egyezmények
A meghívása vezérlőminta végrehajtásakor vegye figyelembe a következő irányelveket és konvenciókat:
A vezérlők implementálják IInvokeProvider, ha ugyanez a viselkedés nem érhető el egy másik vezérlőminta-szolgáltatón keresztül. Ha például az IUIAutomationInvokePattern::Invoke metódus egy vezérlőn ugyanazt a műveletet hajtja végre, mint az IUIAutomationExpandCollapsePattern::Expand vagy Collapse metódus, a vezérlőnek nem szabad implementálnia IInvokeProvider.
A vezérlők meghívása általában az ENTER kattintásával vagy dupla kattintásával vagy lenyomásával, az előre definiált billentyűparancsokkal vagy a billentyűleütések valamilyen alternatív kombinációjával történik.
A meghívott esemény (UIA_Invoke_InvokedEventId) esemény aktivált vezérlőelemen (a kapcsolódó műveletet végrehajtó vezérlőre adott válaszként) jön létre. Ha lehetséges, az eseményt azután kell elindítani, hogy a vezérlő befejezte a műveletet, és blokkolás nélkül vissza kell adni. A meghívott eseményt (UIA_Invoke_InvokedEventId) a meghívási kérésének a következő esetekben történő karbantartása előtt kell elindítani:
- A művelet befejezéséig nem lehet vagy praktikus várni.
- A művelet felhasználói beavatkozást igényel.
- A művelet időigényes, és a hívó ügyfél jelentős ideig blokkolva lesz.
Ha a vezérlő meghívása jelentős mellékhatásokat okoz, ezeket a mellékhatásokat a Súgószöveg tulajdonságon keresztül kell felfedni. Például annak ellenére, hogy IUIAutomationInvokePattern::Invoke nincs társítva a kijelöléssel, A meghívása egy másik vezérlő kijelölését okozhatja.
A rámutatási (vagy egérmutatós) effektusok általában nem jelentenek meghívott eseményt. A rámutatási állapoton alapuló műveletet végrehajtó (nem vizuális hatást okozó) vezérlőknek azonban támogatniuk kell a Meghívás vezérlőmintát.
Jegyzet
Ez az implementáció akadálymentességi probléma, ha a vezérlő csak egérrel kapcsolatos mellékhatás miatt hívható meg.
A vezérlőelem meghívása eltér az elem kiválasztásától. A vezérlőtől függően azonban az invokálás azt okozhatja, hogy az elem mellékhatásként van kiválasztva. Ha például egy Microsoft Word-dokumentumlistaelemet invokálással a Dokumentumok mappában, akkor mindkettő kiválasztja az elemet, és megnyitja a dokumentumot.
Egy elem a meghívás után azonnal eltűnhet a Microsoft UI Automation fájából. Az eseményvisszahívás által biztosított elemtől való információkérés ennek következtében meghiúsulhat. A gyorsítótárazott adatok előzetes beolvasása az ajánlott kerülő megoldás.
A vezérlők több vezérlőmintát is implementálhatnak. A Microsoft Excel eszköztár Kitöltőszín vezérlőeleme például a Meghívás és a ExpandCollapse vezérlőmintákat is implementálja. A ExpandCollapse vezérlőminta elérhetővé teszi a menüt, és a Meghívás vezérlőminta kitölti az aktív kijelölést a kiválasztott színnel.
Az IInvokeProvider szükséges tagjai
A IInvokeProvider interfész implementálásához a következő módszer szükséges.
| Szükséges tagok | Tagtípus | Notes |
|---|---|---|
| meghívása | Módszer |
meghívása aszinkron hívás, és azonnal vissza kell térnie blokkolás nélkül. Ez a viselkedés különösen kritikus az olyan vezérlők esetében, amelyek meghíváskor közvetlenül vagy közvetve elindítanak egy modális párbeszédpanelt. Az eseményt kezdeményező UI Automation-ügyfél a modális párbeszédpanel bezárásáig le lesz tiltva. |
Ez a vezérlőminta nem rendelkezik társított tulajdonságokkal vagy eseményekkel.