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


A felhasználói felület automatizálási ExpandCollapse vezérlési mintázat 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 IExpandCollapseProvidermegvalósítására vonatkozó irányelveket és konvenciókat ismerteti, beleértve a tulajdonságokra, módszerekre és eseményekre vonatkozó információkat. A további hivatkozásokra mutató hivatkozások az áttekintés végén jelennek meg.

A ExpandCollapsePattern vezérlőminta támogatja azokat a vezérlőket, amelyek kibontásukkal több tartalmat jelenítenek meg, és összecsukásukkal elrejtik azt. A 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 automatizálási ügyfelei számára.

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

A ExpandCollapse vezérlőminta megvalósításakor vegye figyelembe a következő irányelveket és konvenciókat:

  • A felhasználói felületet kibontó/összecsukó funkciót biztosító gyermekobjektumokkal létrehozott összesítő vezérlőknek támogatniuk kell a ExpandCollapsePattern vezérlőmintát, míg a gyermekelemek nem. A kombinált lista vezérlőelem például listamezők, gombok és szerkesztési vezérlők kombinációjával épül fel, de csak a szülő kombinált lista vezérlőelemnek kell támogatnia a ExpandCollapsePattern.

    Megjegyzés:

    Kivételt képez a menüvezérlő, amely az egyes MenuItem-objektumok összesítése. A MenuItem-objektumok támogathatják a ExpandCollapsePattern vezérlőmintát, de a szülőmenü-vezérlő nem. Hasonló kivétel vonatkozik a Tree és Tree Item vezérlőkre.

  • Amikor egy vezérlő ExpandCollapseState értékre van állítva, a vezérlő bármely LeafNode funkciója jelenleg inaktív, és az egyetlen információ, amely ezzel a vezérlési mintával megszerezhető, az a ExpandCollapsePattern. Ha később alobjektumokat ad hozzá, a ExpandCollapseState módosításra kerül, és a ExpandCollapsePattern funkció aktiválódik.

  • ExpandCollapseState csak az azonnali gyermekobjektumok láthatóságára vonatkozik; nem hivatkozik az összes leszármazott objektum láthatóságára.

  • A Kibontás és összecsukás funkció vezérlőelem-specifikus. Az alábbi példák erre a viselkedésre mutatnak.

    • Az Office Személyes menü lehet háromállapotú MenuItem (Expanded, Collapsed és PartiallyExpanded), ahol a vezérlő meghatározza, hogy milyen állapotot fogadjon el, amikor egy Expand vagy Collapse hívás történik.

    • A TreeItem hívása Expand megjelenítheti az összes leszármazottat vagy csak a közvetlen gyermekeket.

    • Ha a Expand vagy Collapse hívása egy vezérlőnél fenntartja a leszármazottak állapotát, akkor láthatósági változási eseményt kell küldeni, nem pedig állapotváltozási eseményt. Ha a szülő vezérlő nem tartja fenn a leszármazottak állapotát, amikor össze van húzva, a vezérlő megsemmisítheti az összes olyan leszármazottat, amely már nem látható, és létrehozhat egy megsemmisítési eseményt; vagy megváltoztathatja az ExpandCollapseState minden leszármazottnál, és generálhat egy láthatósági változási eseményt.

  • A navigáció garantálása érdekében kívánatos, hogy egy objektum szerepeljen a felhasználói felület automatizálási fában a megfelelő láthatósági állapotban, függetlenül a szüleitől ExpandCollapseState. Ha a leszármazottak igény szerint jönnek létre, előfordulhat, hogy csak az első megjelenítés után jelennek meg a felhasználói felület automation fájában, vagy csak addig, amíg láthatók.

Az IExpandCollapseProvider kötelező tagjai

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

Kötelező tagok Tagtípus Jegyzetek
ExpandCollapseState Ingatlan Egyik sem
Expand Metódus Egyik sem
Collapse Metódus Egyik sem
AutomationPropertyChangedEventHandler Esemény Ez a vezérlő nem rendelkezik társított eseményekkel; használja ezt az általános meghatalmazottat.

Kivételek

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

Kivétel típusa Állapot
InvalidOperationException Vagy a Expand vagy a Collapse hívjuk meg, amikor a ExpandCollapseState = LeafNode sor kerül.

Lásd még