Dela via


Implementera UI Automation ExpandCollapse-kontrollmönstret

Kommentar

Den här dokumentationen System.Windows.Automation är avsedd för .NET Framework-utvecklare som vill använda de hanterade UI Automation-klasserna som definierats i namnområdet. Den senaste informationen om UI Automation finns i Windows Automation API: UI Automation.

Det här avsnittet innehåller riktlinjer och konventioner för att implementera IExpandCollapseProvider, inklusive information om egenskaper, metoder och händelser. Länkar till ytterligare referenser visas i slutet av översikten.

Kontrollmönstret ExpandCollapsePattern används för att stödja kontroller som visuellt expanderar för att visa mer innehåll och komprimera för att dölja innehåll. Exempel på kontroller som implementerar det här kontrollmönstret finns i Kontrollmönstermappning för UI Automation-klienter.

Riktlinjer och konventioner för implementering

Observera följande riktlinjer och konventioner när du implementerar kontrollmönstret ExpandCollapse:

  • Aggregerade kontroller – byggda med underordnade objekt som ger användargränssnittet utökade/komprimerade funktioner – måste ha stöd ExpandCollapsePattern för kontrollmönstret medan deras underordnade element inte gör det. En kombinationsrutekontroll skapas till exempel med en kombination av listrutor, knapp- och redigeringskontroller, men det är bara den överordnade kombinationsrutan som måste ha stöd för ExpandCollapsePattern.

    Kommentar

    Ett undantag är menykontrollen, som är en samling enskilda MenuItem-objekt. MenuItem-objekten kan ha stöd för ExpandCollapsePattern kontrollmönstret, men den överordnade menykontrollen kan inte göra det. Ett liknande undantag gäller för kontrollerna Träd och Trädobjekt.

  • ExpandCollapseState När en kontroll är inställd på LeafNodeär alla ExpandCollapsePattern funktioner för närvarande inaktiva för kontrollen och den enda information som kan hämtas med hjälp av det här kontrollmönstret är ExpandCollapseState. Om några underordnade objekt senare läggs till ExpandCollapseState aktiveras ändringarna och ExpandCollapsePattern funktionerna.

  • ExpandCollapseState hänvisar endast till synligheten för omedelbara underordnade objekt. det refererar inte till synligheten för alla underordnade objekt.

  • Funktionen Expandera och dölj är kontrollspecifik. Följande är exempel på det här beteendet.

    • Den personliga Office-menyn kan vara en tri-state MenuItem (CollapsedExpandedoch PartiallyExpanded) där kontrollen anger det tillstånd som ska införas när en Expand eller Collapse anropas.

    • Att anropa Expand på en TreeItem kan visa alla underordnade eller endast omedelbara underordnade.

    • Om anropa eller ExpandCollapse på en kontroll behåller tillståndet för dess underordnade bör en händelse för synlighetsändring skickas, inte en tillståndsändringshändelse Om den överordnade kontrollen inte behåller statusen för sina underordnade när den komprimeras, kan kontrollen förstöra alla underordnade som inte längre är synliga och skapa en förstörd händelse, eller så kan den ändra ExpandCollapseState för varje underordnad och skapa en synlighetsändringshändelse.

  • För att garantera navigering är det önskvärt att ett objekt finns i UI Automation-trädet (med lämpligt synlighetstillstånd) oavsett dess överordnade ExpandCollapseState. Om underordnade genereras på begäran kan de bara visas i UI Automation-trädet efter att ha visats för första gången eller bara när de är synliga.

Obligatoriska medlemmar för IExpandCollapseProvider

Följande egenskaper och metoder krävs för att implementera IExpandCollapseProvider.

Obligatoriska medlemmar Medlemstyp Kommentar
ExpandCollapseState Property Ingen
Expand Metod Ingen
Collapse Metod Ingen
AutomationPropertyChangedEventHandler Event Den här kontrollen har inga associerade händelser. använd det här allmänna ombudet.

Undantag

Leverantörer måste utlösa följande undantag.

Undantagstyp Villkor
InvalidOperationException Antingen Expand eller Collapse anropas när ExpandCollapseState = LeafNode.

Se även