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


Kezelők

A .NET többplatformos alkalmazás felhasználói felülete (.NET MAUI) platformfüggetlen vezérlők gyűjteményét nyújtja, amelyek felhasználhatók adatok megjelenítésére, műveletek indítására, tevékenység jelzésére, gyűjtemények megjelenítésére, adatok kiválasztására és egyebekre. Minden vezérlő rendelkezik egy felületi megjelenítéssel, amely absztrakciót ad a vezérlőnek. Az interfészeket megvalósító platformfüggetlen vezérlők virtuális nézeteknéven ismertek. kezelők leképezik ezeket a virtuális nézeteket az egyes platformok vezérlőire, amelyeket natív nézeteknek neveznek. A kezelők feladata az alapul szolgáló natív nézet példányosítása, valamint a platformfüggetlen vezérlési API leképezése a natív nézet API-ra. IOS-en például egy kezelő egy .NET MAUI Button-et leképez egy iOS UIButton-re. Androidon a Button egy MaterialButton-re van leképezve.

Gombkezelő architektúrája.

A .NET MAUI-kezelők a vezérlőspecifikus interfészen keresztül érhetők el, például IButton egy Button. Így elkerülhető, hogy a platformfüggetlen vezérlő a kezelőre hivatkozzon, a kezelőnek pedig a platformfüggetlen vezérlőre kell hivatkoznia.

Minden kezelőosztály a PlatformView tulajdonságán keresztül teszi elérhetővé a platformfüggetlen vezérlőelem natív nézetét. Ez a tulajdonság elérhető natív nézettulajdonságok beállításához, natív nézetmetszetek meghívásához és natív nézetesemények előfizetéséhez. Emellett a kezelő által implementált platformfüggetlen vezérlés a VirtualView tulajdonságán keresztül érhető el.

Amikor olyan platformfüggetlen vezérlőt hoz létre, amelynek implementációját natív nézetek biztosítják az egyes platformokon, olyan kezelőt kell implementálnia, amely a platformfüggetlen vezérlési API-kat a natív nézet API-khoz rendeli. További információ: Egyéni vezérlők létrehozása kezelőkkel.

A kezelőket testre is szabhatja a meglévő platformfüggetlen vezérlők megjelenésének és viselkedésének növeléséhez a vezérlő API-ján keresztül lehetséges testreszabáson túl. Ez a kezelő testreszabása módosítja a platformfüggetlen vezérlőelem natív nézeteit. A kezelők globálisak, és ha egy vezérlőhöz testre szab egy kezelőt, az az alkalmazás minden azonos típusú vezérlőjének testreszabását eredményezi. További információ: .NET MAUI-vezérlők testreszabása kezelőkkel.

Térképészek

A .NET MAUI-kezelők egyik fő fogalma a mappers. Minden kezelő általában egy tulajdonságleképezőt, és néha egy parancsleképezőt, amely leképezi a platformfüggetlen vezérlő API-ját a natív nézet API-jára.

A tulajdonság-leképező határozza meg, hogy milyen műveleteket hajtson végre, ha a platformfüggetlen vezérlőelemben tulajdonságváltozás történik. Ez egy Dictionary, amely leképezi a platformfüggetlen vezérlő tulajdonságait a hozzájuk társított műveletekre. Ezután minden platformkezelő biztosítja az Actions implementációit, amelyek a natív nézet API-t módosítják. Ez biztosítja, hogy amikor egy tulajdonság platformfüggetlen vezérlőelemen van beállítva, a mögöttes natív nézet szükség szerint frissül.

A parancsleképező határozza meg, hogy milyen műveleteket kell végrehajtani, amikor a platformfüggetlen vezérlő parancsokat küld natív nézeteknek. Hasonlóak a tulajdonság-leképezőkhöz, de lehetővé teszik további adatok átadását. Ebben a környezetben a parancsok nem jelentik ICommand implementációt. Ehelyett a parancsok csak utasítások, és opcionálisan azok adatai, amelyeket egy natív nézetbe küldenek. A parancsleképező egy Dictionary, amely leképezi a platformfüggetlen vezérlő parancsait a hozzájuk tartozó műveletekhez. Ezután minden kezelő biztosítja a Műveletek implementációit, amelyek a natív nézet API-t módosítják. Ez biztosítja, hogy amikor egy platformfüggetlen vezérlő parancsot küld a natív nézetnek, a natív nézet szükség szerint frissül. Ha például egy ScrollView görgetve van, a ScrollViewHandler parancs-leképezővel meghív egy műveletet, amely elfogadja a görgetési pozíció argumentumát. A művelet ezután arra utasítja a mögöttes natív nézetet, hogy görgessen erre a pozícióra.

A natív nézetek frissítéséhez leképezők használatának előnye, hogy a natív nézetek leválaszthatók a platformfüggetlen vezérlőkről. Így nincs szükség natív nézetekre a platformfüggetlen vezérlési eseményekre való feliratkozáshoz és leiratkozáshoz. Emellett egyszerű testreszabást is lehetővé tesz, mivel a leképezők alosztályozás nélkül módosíthatók.

Kezelő életciklusa

Minden kezelőalapú .NET MAUI-vezérlő két kezelői életciklus-eseményt támogat:

  • HandlerChanging akkor jön létre, ha egy platformfüggetlen vezérlőhöz új kezelőt szeretne létrehozni, és egy meglévő kezelőt hamarosan eltávolítanak egy platformfüggetlen vezérlőből. Az eseményt kísérő HandlerChangingEventArgs objektum NewHandler és OldHandlerIElementHandlertípusú tulajdonságokkal rendelkezik. Ha a NewHandler tulajdonság nem null, az esemény azt jelzi, hogy egy új kezelőt fog létrehozni egy platformfüggetlen vezérlőelemhez. Ha a OldHandler tulajdonság nem null, az esemény azt jelzi, hogy a meglévő natív vezérlőt el kell távolítani a platformfüggetlen vezérlőből, ezért minden natív eseményt el kell távolítani, és az egyéb törlést végre kell hajtani.
  • HandlerChanged a platformfüggetlen vezérlő kezelőjének létrehozása után jön létre. Ez az esemény azt jelzi, hogy a platformfüggetlen vezérlőt megvalósító natív vezérlő elérhető, és a platformfüggetlen vezérlőelemen beállított összes tulajdonságérték a natív vezérlőre lett alkalmazva.

Jegyzet

A HandlerChanging esemény platformfüggetlen vezérlőelemen lesz előállítva a HandlerChanged esemény előtt.

Ezeken az eseményeken kívül minden platformfüggetlen vezérlő rendelkezik egy felülírható OnHandlerChanging metódussal is, amelyet a HandlerChanging esemény létrehozásakor hív meg, valamint egy OnHandlerChanged metódust is, amelyet a HandlerChanged esemény létrehozásakor hív meg.

Kezelők megtekintése

Az alábbi táblázat a .NET MAUI-ban nézeteket megvalósító típusokat sorolja fel:

Megtekintés Interfész Kezelő Tulajdonság-leképező Parancstérkép
ActivityIndicator IActivityIndicator ActivityIndicatorHandler Mapper CommandMapper
BlazorWebView IBlazorWebView BlazorWebViewHandler BlazorWebViewMapper
Border IBorderView BorderHandler Mapper CommandMapper
BoxView IShapeView, IShape ShapeViewHandler Mapper CommandMapper
Button IButton ButtonHandler ImageButtonMapper, TextButtonMapper, Mapper CommandMapper
CarouselView CarouselViewHandler Mapper
Cell CellRenderer Mapper CommandMapper
CheckBox ICheckBox CheckBoxHandler Mapper CommandMapper
CollectionView CollectionViewHandler <Mapper
ContentView IContentView ContentViewHandler Mapper CommandMapper
DatePicker IDatePicker DatePickerHandler Mapper CommandMapper
Editor IEditor EditorHandler Mapper CommandMapper
Ellipse IShape ShapeViewHandler Mapper CommandMapper
Entry IEntry EntryHandler Mapper CommandMapper
EntryCell EntryCellRenderer Mapper CommandMapper
Frame FrameRenderer Mapper CommandMapper
GraphicsView IGraphicsView GraphicsViewHandler Mapper CommandMapper
Image IImage ImageHandler Mapper CommandMapper
ImageButton IImageButton ImageButtonHandler ImageMapper, Mapper
ImageCell ImageCellRenderer Mapper CommandMapper
IndicatorView IIndicatorView IndicatorViewHandler Mapper CommandMapper
Label ILabel LabelHandler Mapper CommandMapper
Line IShape LineHandler Mapper CommandMapper
ListView ListViewRenderer Mapper CommandMapper
Map IMap MapHandler Mapper CommandMapper
Path IShape PathHandler Mapper CommandMapper
Picker IPicker PickerHandler Mapper CommandMapper
Polygon IShape PolygonHandler Mapper CommandMapper
Polyline IShape PolylineHandler Mapper CommandMapper
ProgressBar IProgress ProgressBarHandler Mapper CommandMapper
RadioButton IRadioButton RadioButtonHandler Mapper CommandMapper
Rectangle IShape RectangleHandler Mapper CommandMapper
RefreshView IRefreshView RefreshViewHandler Mapper CommandMapper
RoundRectangle IShape RoundRectangleHandler Mapper CommandMapper
ScrollView IScrollView ScrollViewHandler Mapper CommandMapper
SearchBar ISearchBar SearchBarHandler Mapper CommandMapper
Slider ISlider SliderHandler Mapper CommandMapper
Stepper IStepper StepperHandler Mapper CommandMapper
SwipeView ISwipeView SwipeViewHandler Mapper CommandMapper
Switch ISwitch SwitchHandler Mapper CommandMapper
SwitchCell SwitchCellRenderer Mapper CommandMapper
TableView TableViewRenderer Mapper CommandMapper
TextCell TextCellRenderer Mapper CommandMapper
TimePicker ITimePicker TimePickerHandler Mapper CommandMapper
ViewCell ViewCellRenderer Mapper CommandMapper
WebView IWebView WebViewHandler Mapper CommandMapper

Lapkezelők

Az alábbi táblázat a .NET MAUI-ban oldalakat implementáló típusokat sorolja fel:

Oldal Android-kezelő iOS/Mac Catalyst Handler Windows-kezelő Tulajdonságtérképész Parancs-leképező
ContentPage PageHandler PageHandler PageHandler Mapper CommandMapper
FlyoutPage FlyoutViewHandler PhoneFlyoutPageRenderer FlyoutViewHandler Mapper CommandMapper
NavigationPage NavigationViewHandler Navigáció Renderelő NavigationViewHandler Mapper CommandMapper
TabbedPage TabbedViewHandler TabbedRenderer TabbedViewHandler Mapper CommandMapper
Shell ShellHandler ShellRenderer ShellRenderer Mapper CommandMapper