Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
.NET Multi-Platform App UI (.NET MAUI) biedt een verzameling platformoverschrijdende besturingselementen die kunnen worden gebruikt om gegevens weer te geven, acties te starten, activiteiten aan te geven, verzamelingen weer te geven, gegevens te kiezen en meer. Elk bedieningselement heeft een interfaceweergave die het bedieningselement abstract vertegenwoordigt. Platformoverschrijdende besturingselementen die deze interfaces implementeren, worden virtuele weergavengenoemd.
Behandelaars wijzen deze virtuele weergaven toe aan besturingselementen op elk platform, die ook wel systeemeigen weergavenworden genoemd. Handlers zijn ook verantwoordelijk voor het instantiëren van de onderliggende systeemeigen weergave en het toewijzen van de platformoverschrijdende besturings-API aan de systeemeigen weergave-API. Op iOS wijst een handler bijvoorbeeld een .NET MAUI-Button toe aan een iOS-UIButton
. Op Android wordt de Button gemapt naar een MaterialButton
:
.NET MAUI-handlers zijn benaderbaar via hun controle-specifieke interface, zoals IButton
voor een Button. Dit voorkomt dat het platformoverschrijdende besturingselement moet verwijzen naar de handler en dat de handler moet verwijzen naar het platformoverschrijdende besturingselement.
Elke handlerklasse toont de systeemeigen weergave voor het platformoverschrijdende besturingselement via de eigenschap PlatformView
. Deze eigenschap kan worden geopend om systeemeigen weergave-eigenschappen in te stellen, systeemeigen weergavemethoden aan te roepen en u te abonneren op systeemeigen weergavegebeurtenissen. Daarnaast wordt het platformoverschrijdende besturingselement dat door de handler wordt geïmplementeerd, beschikbaar gesteld via de eigenschap VirtualView
.
Wanneer u een platformoverschrijdend besturingselement maakt waarvan de implementatie op elk platform wordt geleverd door systeemeigen weergaven, moet u een handler implementeren waarmee de platformoverschrijdende besturings-API wordt toegewezen aan de systeemeigen weergave-API's. Zie Aangepaste besturingselementen maken met handlersvoor meer informatie.
U kunt handlers ook aanpassen om het uiterlijk en gedrag van bestaande platformoverschrijdende besturingselementen verder uit te breiden dan de aanpassing die mogelijk is via de API van het besturingselement. Deze handleraanpassing wijzigt de systeemeigen weergaven voor het platformoverschrijdende besturingselement. Afhandelaars zijn algemeen, en het aanpassen van een afhandelaar voor een besturingselement zorgt ervoor dat alle besturingselementen van hetzelfde type in uw app worden aangepast. Zie .NET MAUI-besturingselementen aanpassen met handlersvoor meer informatie.
Kaartmakers
Een belangrijk concept van .NET MAUI handlers zijn de mappers. Elke handler biedt doorgaans een eigenschapstoewijzer, en soms een opdrachttoewijzer, waarmee de API van het platformoverschrijdende besturingselement wordt toegewezen aan de API van de natuurlijke weergave.
Een eigenschapstoewijzing definieert welke acties moeten worden uitgevoerd wanneer een eigenschapswijziging plaatsvindt in het platformoverschrijdende besturingselement. Het is een Dictionary
waarmee de eigenschappen van het platformoverschrijdende besturingselement worden toegewezen aan de bijbehorende acties. Elke platformhandler biedt vervolgens implementaties van de acties, waarmee de systeemeigen weergave-API wordt bewerkt. Dit zorgt ervoor dat wanneer een eigenschap is ingesteld op een platformoverschrijdend besturingselement, de onderliggende systeemeigen weergave naar behoefte wordt bijgewerkt.
Een opdrachtomzetter definieert welke acties moeten worden uitgevoerd wanneer de platformonafhankelijke bediening opdrachten naar native weergaven verzendt. Ze zijn vergelijkbaar met eigenschapstoewijzingen, maar zorgen ervoor dat extra gegevens worden doorgegeven. Een opdracht in deze context betekent geen ICommand implementatie. In plaats daarvan is een opdracht slechts een instructie en optioneel de bijbehorende gegevens, die naar een systeemeigen weergave worden verzonden. De commando-mapper is een Dictionary
waarmee het commando van het platformoverschrijdende besturingselement wordt toegewezen aan de bijbehorende Acties. Elke handler biedt vervolgens implementaties van de acties, waarmee de systeemeigen weergave-API wordt gemanipuleerd. Dit zorgt ervoor dat wanneer een platformoverschrijdend besturingselement een opdracht naar de systeemeigen weergave verzendt, de systeemeigen weergave naar behoefte wordt bijgewerkt. Wanneer een ScrollView bijvoorbeeld wordt gescrold, gebruikt de ScrollViewHandler
een commando-mapper om een actie aan te roepen die een scrollpositie-argument accepteert. Vervolgens instrueert de actie de onderliggende eigen weergave om naar die positie te scrollen.
Het voordeel van het gebruik van mappers om systeemeigen weergaven bij te werken, is dat systeemeigen weergaven kunnen worden losgekoppeld van platformoverschrijdende besturingselementen. Hierdoor hoeven systeemeigen weergaven zich niet langer te abonneren op of af te melden voor platformoverschrijdende controlegebeurtenissen. Het maakt ook eenvoudig aanpassen mogelijk omdat mappers kunnen worden gewijzigd zonder subklassen.
Levenscyclus van handler
Alle handlergebaseerde .NET MAUI-besturingselementen ondersteunen twee handlerlevenscyclusgebeurtenissen:
-
HandlerChanging
wordt geactiveerd wanneer een nieuwe handler op het punt staat te worden gemaakt voor een platformoverschrijdend besturingselement en wanneer een bestaande handler op het punt staat te worden verwijderd uit hetzelfde platformoverschrijdende besturingselement. HetHandlerChangingEventArgs
-object dat bij deze gebeurtenis hoort, heeftNewHandler
- enOldHandler
eigenschappen van het typeIElementHandler
. Wanneer de eigenschapNewHandler
nietnull
is, geeft de gebeurtenis aan dat er een nieuwe handler op het punt staat te worden gemaakt voor een platformoverschrijdend besturingselement. Wanneer de eigenschapOldHandler
nietnull
is, geeft de gebeurtenis aan dat het bestaande systeemeigen besturingselement op het punt staat verwijderd te worden uit het platformoverschrijdende besturingselement en daarom moeten alle systeemeigen gebeurtenissen ontkoppeld worden en moet er andere opruiming worden uitgevoerd. -
HandlerChanged
wordt gegenereerd nadat de handler voor een platformoverschrijdend besturingselement is gemaakt. Met deze gebeurtenis wordt aangegeven dat het systeemeigen besturingselement waarmee het platformoverschrijdende besturingselement wordt geïmplementeerd, beschikbaar is en dat alle eigenschapswaarden die zijn ingesteld op het platformoverschrijdende besturingselement, zijn toegepast op het systeemeigen besturingselement.
Notitie
De HandlerChanging
gebeurtenis wordt gegenereerd op een platformoverschrijdend besturingselement vóór de HandlerChanged
gebeurtenis.
Naast deze gebeurtenissen heeft elk platformoverschrijdend besturingselement ook een overschrijfbare OnHandlerChanging
methode die wordt aangeroepen wanneer de HandlerChanging
gebeurtenis wordt gegenereerd en een OnHandlerChanged
methode die wordt aangeroepen wanneer de HandlerChanged
gebeurtenis wordt gegenereerd.
Handlers weergeven
De volgende tabel bevat de typen die weergaven implementeren in .NET MAUI:
Paginahandlers
De volgende tabel bevat de typen die pagina's implementeren in .NET MAUI:
Bladzijde | Android Handler | iOS/Mac Catalyst Handler | Windows-beheerder | Eigenschap Mapper | Commando-omzetter |
---|---|---|---|---|---|
ContentPage | PageHandler | PageHandler | PageHandler | Mapper | CommandMapper |
FlyoutPage | FlyoutViewHandler | PhoneFlyoutPageRenderer | FlyoutViewHandler | Mapper |
CommandMapper |
NavigationPage | NavigationViewHandler | NavigationRenderer | NavigationViewHandler | Mapper |
CommandMapper |
TabbedPage | TabbedViewHandler | TabbedRenderer | TabbedViewHandler | Mapper |
CommandMapper |
Shell | ShellHandler |
ShellRenderer | ShellRenderer | Mapper |
CommandMapper |