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


A felhasználói felület automatizálásának meghívási vezérlőmintájának implementálása

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 a témakör a megvalósításra IInvokeProvidervonatkozó irányelveket és konvenciókat ismerteti, beleértve az eseményekre és tulajdonságokra vonatkozó információkat is. A további hivatkozásokra mutató hivatkozások a témakör végén jelennek meg.

A InvokePattern vezérlőminta olyan vezérlők támogatására szolgál, amelyek aktiváláskor nem tartják fenn az állapotot, hanem egyetlen, egyértelmű műveletet kezdeményeznek vagy hajtanak végre. Az állapotot fenntartó vezérlőknek, mint például a jelölőnégyzeteknek és a választógomboknak, implementálniuk kell a IToggleProvider és a ISelectionItemProvider megfelelően. A meghívási vezérlőmintát megvalósító vezérlők példáiért lásd: Vezérlőminta-megfeleltetés a felhasználói felület automation-ügyfelei számára.

Végrehajtási irányelvek és egyezmények

A hívásvezérlési minta megvalósításakor vegye figyelembe a következő irányelveket és konvenciókat.

  • A vezérlők akkor implementálnak IInvokeProvider , ha ugyanez a viselkedés nem érhető el egy másik vezérlőminta-szolgáltatón keresztül. Ha például a Invoke metódus ugyanazt a műveletet hajtja végre egy vezérlőn, mint a Expand vagy Collapse metódus, akkor a vezérlőnek nem szabad implementálnia a IInvokeProvider metódust.

  • 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.

  • InvokedEvent akkor keletkezik, amikor egy vezérlő aktiválódik, válaszként arra, hogy az a hozzá tartozó műveletet végrehajtotta. 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 a meghívási kérés kiszolgálása előtt kell elindítani a következő esetekben:

    • 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 kontroll invokálása jelentős mellékhatásokat okoz, ezeket a mellékhatásokat a HelpText tulajdonságon keresztül kell felfedni. Bár a Invoke nincs társítva kijelöléssel, előfordulhat, hogy a Invoke egy másik vezérlőelemet választ ki.

  • A rámutatási (vagy egérmutatós) effektusok általában nem számítanak aktivált eseménynek. Azonban azoknak a vezérlőknek, amelyek az egérmutató fölötti állapoton alapuló műveletet hajtanak végre (szemben a vizuális hatás okozásával), támogatniuk kell a InvokePattern vezérlőmintát.

Megjegyzés:

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 felhasználói felület 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 mind a InvokePattern mind a ExpandCollapsePattern vezérlőmintákat implementálja. ExpandCollapsePattern megnyitja a menüt, és a InvokePattern a választott színnel kitölti az aktív kijelölést.

Az IInvokeProvider szükséges tagjai

A megvalósításhoz IInvokeProvidera következő tulajdonságokra és metódusokra van szükség.

Kötelező tagok Tagtípus Jegyzetek
Invoke módszer Invoke 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.

Kivételek

A szolgáltatóknak a következő kivételeket kell megadniuk.

Kivétel típusa Állapot
ElementNotEnabledException Ha a vezérlő nincs engedélyezve.

Lásd még