Implementace vzoru ovládacích prvků ExpandCollapse 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 IExpandCollapseProvider, včetně informací o vlastnostech, metodách a událostech. Odkazy na další odkazy jsou uvedeny na konci přehledu.

Vzor ExpandCollapsePattern ovládacích prvků se používá k podpoře ovládacích prvků, které vizuálně rozbalují zobrazení dalšího obsahu a sbalení ke skrytí obsahu. Příklady ovládacích prvků, které tento vzor ovládacích prvků implementují, 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 ExpandCollapse si všimněte následujících pokynů a konvencí:

  • Agregační ovládací prvky vytvořené s podřízenými objekty, které poskytují uživatelské rozhraní s funkcí rozbalení/sbalení, musí podporovat ExpandCollapsePattern vzor ovládacího prvku, zatímco jejich podřízené prvky ne. Například ovládací prvek pole se seznamem je sestaven pomocí kombinace ovládacích prvků seznamu, tlačítka a úprav, ale je to pouze nadřazené pole se seznamem, které musí podporovat ExpandCollapsePattern.

    Poznámka:

    Výjimkou je ovládací prvek nabídky, což je agregace jednotlivých objektů MenuItem. Objekty MenuItem mohou podporovat ExpandCollapsePattern vzor ovládacího prvku, ale nadřazený ovládací prvek Menu nemůže. Podobná výjimka platí pro ovládací prvky Stromová a stromová položka.

  • ExpandCollapseState Pokud je ovládací prvek nastaven na LeafNode, všechny ExpandCollapsePattern funkce jsou momentálně neaktivní pro ovládací prvek a jediné informace, které lze získat pomocí tohoto vzoru ovládacího prvku, je ExpandCollapseState. Pokud se následně přidají nějaké podřízené objekty, ExpandCollapseState změny a ExpandCollapsePattern funkce se aktivují.

  • ExpandCollapseState odkazuje pouze na viditelnost bezprostředních podřízených objektů; neodkazuje na viditelnost všech následnických objektů.

  • Funkce rozbalení a sbalení je specifická pro řízení. Tady jsou příklady tohoto chování.

    • Osobní nabídka Office může být tri-state MenuItem (ExpandedCollapsedaPartiallyExpanded) kde ovládací prvek určuje stav, který má přijmout při Expand nebo Collapse je volána.

    • Volání Expand na TreeItem může zobrazit všechny potomky nebo pouze okamžité podřízené položky.

    • Pokud volání Expand nebo Collapse na ovládací prvek udržuje stav jeho potomků, měla by být odeslána událost změny viditelnosti, ne událost změny stavu Pokud nadřazený ovládací prvek při sbaleném stavu jeho potomků, může ovládací prvek zničit všechny potomky, které již nejsou viditelné a vyvolat zničenou událost; nebo může změnit ExpandCollapseState událost pro každého potomka a zvýšit viditelnost události změny.

  • Chcete-li zaručit navigaci, je žádoucí, aby objekt byl ve stromu model UI Automation (s odpovídajícím stavem viditelnosti) bez ohledu na jeho nadřazené prvky ExpandCollapseState. Pokud jsou potomci generováni na vyžádání, můžou se objevit pouze v model UI Automation stromu po prvním zobrazení nebo pouze v době, kdy jsou viditelné.

Požadované členy pro IExpandCollapseProvider

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

Požadované členy Typ členu Notes
ExpandCollapseState Vlastnost Nic
Expand metoda Nic
Collapse metoda Nic
AutomationPropertyChangedEventHandler Událost Tento ovládací prvek nemá žádné přidružené události; použít tohoto obecného delegáta.

Výjimky

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

Typ výjimky Podmínka
InvalidOperationException Buď Expand nebo Collapse je volána při ExpandCollapseState = LeafNode.

Viz také