Vezérlőminta meghívása

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.

vezérlőtípusok és azok támogatott vezérlőmintái

felhasználói felület automatizálási szabályozási mintáinak áttekintése

felhasználói felület automatizálási fájának áttekintése

UIA_Invoke_InvokedEventId