Implementera UI Automation ExpandCollapse-kontrollmönstret

Anmärkning

Den här dokumentationen är avsedd för .NET Framework-utvecklare som vill använda de hanterade UI Automation-klasserna som definierats i System.Windows.Automation namnrymd. 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.

    Anmärkning

    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 ändras ExpandCollapseState och ExpandCollapsePattern funktionalitet aktiveras.

  • ExpandCollapseState hänvisar endast till synligheten för de omedelbara underordnade objekten; det refererar inte till synligheten för alla efterföljande 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 (Expanded, Collapsed och 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 anrop till Expand eller Collapse på en kontroll behåller tillståndet för dess underordnade, bör en synlighetsändringshändelse skickas, inte en tillståndsändringshändelse. Om den överordnade kontrollen inte behåller tillståndet för sina underordnade när den kollapsar, kan kontrollen förstöra alla underordnade som inte längre är synliga och utlösa en förstörd händelse, eller så kan den ändra ExpandCollapseState för varje underordnad och utlösa 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 Noteringar
ExpandCollapseState Fastighet Ingen
Expand Metod Ingen
Collapse Metod Ingen
AutomationPropertyChangedEventHandler Evenemang 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 Tillstånd
InvalidOperationException Antingen Expand eller Collapse anropas när ExpandCollapseState = LeafNode.

Se även