Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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 IInvokeProvider, inklusive information om händelser och egenskaper. Länkar till ytterligare referenser visas i slutet av ämnet.
Kontrollmönstret InvokePattern används för att stödja kontroller som inte underhåller tillstånd när de aktiveras, utan snarare initierar eller utför en enda, entydig åtgärd. Kontroller som upprätthåller tillstånd, till exempel kryssrutor och alternativknappar, måste i stället implementera IToggleProvider respektive ISelectionItemProvider. Exempel på kontroller som implementerar mönstret Anropa kontroll finns i Kontrollmönstermappning för UI Automation-klienter.
Riktlinjer och konventioner för implementering
När du implementerar mönstret Anropa kontroll bör du tänka på följande riktlinjer och konventioner:
Kontroller implementerar IInvokeProvider om samma beteende inte exponeras via en annan kontrollmönsterleverantör. Om Invoke-metoden på en kontroll, till exempel, utför samma åtgärd som Expand- eller Collapse-metoden, ska kontrollen inte implementera IInvokeProvider.
Att anropa en kontroll utförs vanligtvis genom att klicka eller dubbelklicka eller trycka på RETUR, ett fördefinierat kortkommando eller någon alternativ kombination av tangenttryckningar.
InvokedEvent aktiveras på en kontroll som har aktiverats (som ett svar på en kontroll som utför dess associerade åtgärd). Om möjligt bör händelsen aktiveras när kontrollen har slutfört åtgärden och returnerats utan blockering. Den invokerade händelsen bör utlösas innan Invoke-begäran hanteras i följande scenarier:
Det är inte möjligt eller praktiskt att vänta tills åtgärden är klar.
Åtgärden kräver användarinteraktion.
Åtgärden är tidskrävande och gör att den anropande klienten blockeras under en betydande tid.
Om anrop av kontrollen har betydande biverkningar, bör dessa biverkningar exponeras via egenskapen HelpText . Även om Invoke inte är associerat med markering, kan Invoke ändå orsaka att en annan kontroll väljs.
Hovringseffekter (eller musöver) utgör vanligtvis inte en anropad händelse. Kontroller som utför en åtgärd (i stället för att orsaka en visuell effekt) baserat på hovringstillståndet bör dock ha stöd för InvokePattern kontrollmönstret.
Anmärkning
Den här implementeringen anses vara ett hjälpmedelsproblem om kontrollen endast kan anropas som ett resultat av en musrelaterad biverkning.
Att anropa en kontroll skiljer sig från att välja ett objekt. Beroende på kontrollen kan det dock leda till att objektet väljs som en bieffekt om det anropas. Om du till exempel anropar ett Microsoft Word-dokumentlistobjekt i mappen Mina dokument markeras både objektet och dokumentet öppnas.
Ett element kan försvinna från UI Automation-trädet omedelbart när det anropas. Att begära information från elementet som tillhandahålls av händelseåteranropet kan misslyckas till följd av detta. Förhämtning av cachelagrad information är den rekommenderade lösningen.
Kontroller kan implementera flera kontrollmönster. Till exempel implementerar kontrollen Fyllningsfärg på Microsoft Excel-verktygsfältet både InvokePattern och ExpandCollapsePattern-kontrollmönstren. ExpandCollapsePattern visar menyn och fyller den InvokePattern aktiva markeringen med den valda färgen.
Obligatoriska medlemmar för IInvokeProvider
Följande egenskaper och metoder krävs för att implementera IInvokeProvider.
| Obligatoriska medlemmar | Medlemstyp | Noteringar |
|---|---|---|
| Invoke | metod |
Invoke är ett asynkront anrop och måste returneras omedelbart utan blockering. Det här beteendet är särskilt viktigt för kontroller som direkt eller indirekt startar en modal dialogruta när den anropas. Alla UI Automation-klienter som initierade händelsen kommer att förbli blockerade tills den modala dialogrutan har stängts. |
Undantag
Leverantörer måste utlösa följande undantag.
| Undantagstyp | Tillstånd |
|---|---|
| ElementNotEnabledException | Om kontrollen inte är aktiverad. |