Sdílet prostřednictvím


Implementace vzoru ovládacích prvků vyvolání pro automatizaci uživatelského rozhraní

Poznámka:

Tato dokumentace je určená pro vývojáře rozhraní .NET Framework, kteří chtějí používat spravované třídy model UI Automation definované v System.Windows.Automation oboru názvů. Nejnovější informace o model UI Automation najdete v tématu Rozhraní API služby Windows Automation: model UI Automation.

Toto téma představuje pokyny a konvence pro implementaci IInvokeProvider, včetně informací o událostech a vlastnostech. Odkazy na další odkazy jsou uvedeny na konci tématu.

Vzor InvokePattern ovládacích prvků se používá k podpoře ovládacích prvků, které při aktivaci neudržují stav, ale spíše iniciují nebo provádějí jednu jednoznačnou akci. Ovládací prvky, které udržují stav, například zaškrtávací políčka a přepínače, musí místo toho implementovat IToggleProvider a ISelectionItemProvider v uvedeném pořadí. Příklady ovládacích prvků, které implementují vzor ovládacího prvku Invoke, naleznete v tématu Mapování vzorů ovládacích prvků pro model UI Automation Klienti.

Pokyny a konvence implementace

Při implementaci vzoru ovládacího prvku Invoke si všimněte následujících pokynů a konvencí:

  • Ovládací prvky implementují IInvokeProvider , pokud stejné chování není vystaveno prostřednictvím jiného zprostředkovatele vzorů ovládacích prvků. Pokud například Invoke metoda na ovládacím prvku provádí stejnou akci jako Expand metoda nebo Collapse metoda, ovládací prvek by neměl implementovat IInvokeProvider.

  • Vyvolání ovládacího prvku se obvykle provádí kliknutím nebo dvojitým kliknutím nebo stisknutím klávesy ENTER, předdefinované klávesové zkratky nebo některé alternativní kombinace klávesových zkratek.

  • InvokedEvent je vyvolána na ovládacím prvku, který byl aktivován (jako odpověď na ovládací prvek provádějící jeho přidruženou akci). Pokud je to možné, událost by měla být vyvolána poté, co ovládací prvek akci dokončil a vrátil se bez blokování. Vyvolána událost by měla být vyvolána před obsluhou požadavku Invoke v následujících scénářích:

    • Není možné ani praktické počkat, až se akce dokončí.

    • Akce vyžaduje interakci uživatele.

    • Akce je časově náročná a způsobí, že volající klient po určitou dobu zablokuje.

  • Pokud vyvolání ovládacího prvku má významné vedlejší účinky, měly by být tyto vedlejší účinky vystaveny prostřednictvím HelpText vlastnosti. I když Invoke například není přidružen k výběru, Invoke může dojít k výběru jiného ovládacího prvku.

  • Účinky najetí myší (nebo najetí myší) obvykle nepředstavují vyvolánou událost. Ovládací prvky, které provádějí nějakou akci (na rozdíl od příčin vizuálního efektu), by však měly podporovat InvokePattern vzor ovládacího prvku.

Poznámka:

Tato implementace je považována za problém s přístupností, pokud lze ovládací prvek vyvolat pouze v důsledku vedlejšího efektu souvisejícího s myší.

  • Vyvolání ovládacího prvku se liší od výběru položky. V závislosti na ovládacím prvku však může jeho vyvolání způsobit, že položka bude vybrána jako vedlejší efekt. Například vyvolání položky seznamu dokumentů aplikace Microsoft Word ve složce Dokumenty vybere položku a otevře dokument.

  • Prvek může z model UI Automation stromu okamžitě zmizet. Vyžádání informací z elementu poskytnutého zpětným voláním události může selhat v důsledku toho. Doporučeným alternativním řešením je předběžné načtení informací uložených v mezipaměti.

  • Ovládací prvky můžou implementovat více vzorů ovládacích prvků. Například ovládací prvek Barva výplně na panelu nástrojů Aplikace Microsoft Excel implementuje vzory InvokePattern ovládacích ExpandCollapsePattern prvků i vzory ovládacích prvků. ExpandCollapsePattern zobrazí nabídku a InvokePattern vyplní aktivní výběr zvolenou barvou.

Požadované členy pro IInvokeProvider

Pro implementaci IInvokeProviderjsou vyžadovány následující vlastnosti a metody .

Požadované členy Typ členu Notes
Invoke metoda Invoke je asynchronní volání a musí se vrátit okamžitě bez blokování.

Toto chování je zvláště důležité pro ovládací prvky, které při vyvolání přímo nebo nepřímo spustí modální dialogové okno. Každý model UI Automation klient, který událost vyvolal, zůstane zablokovaný, dokud se modální dialogové okno neskoncuje.

Výjimky

Poskytovatelé musí vyvolat následující výjimky.

Typ výjimky Podmínka
ElementNotEnabledException Pokud ovládací prvek není povolený.

Viz také