static MauiAppBuilder SetupDefaults(this MauiAppBuilder builder) { builder.ConfigureCompatibilityLifecycleEvents(); builder.ConfigureImageSourceHandlers(); builder .ConfigureMauiHandlers(handlers => { handlers.AddMauiControlsHandlers(); DependencyService.SetToInitialized(); #if __ANDROID__ || __IOS__ || WINDOWS || MACCATALYST handlers.TryAddCompatibilityRenderer(typeof(Frame), typeof(FrameRenderer)); handlers.TryAddCompatibilityRenderer(typeof(BoxView), typeof(BoxRenderer)); handlers.TryAddCompatibilityRenderer(typeof(Entry), typeof(EntryRenderer)); handlers.TryAddCompatibilityRenderer(typeof(Editor), typeof(EditorRenderer)); handlers.TryAddCompatibilityRenderer(typeof(Label), typeof(LabelRenderer)); handlers.TryAddCompatibilityRenderer(typeof(Image), typeof(ImageRenderer)); handlers.TryAddCompatibilityRenderer(typeof(Button), typeof(ButtonRenderer)); handlers.TryAddCompatibilityRenderer(typeof(ImageButton), typeof(ImageButtonRenderer)); handlers.TryAddCompatibilityRenderer(typeof(TableView), typeof(TableViewRenderer)); handlers.TryAddCompatibilityRenderer(typeof(ListView), typeof(ListViewRenderer)); handlers.TryAddCompatibilityRenderer(typeof(CollectionView), typeof(CollectionViewRenderer)); handlers.TryAddCompatibilityRenderer(typeof(CarouselView), typeof(CarouselViewRenderer)); handlers.TryAddCompatibilityRenderer(typeof(Path), typeof(PathRenderer)); handlers.TryAddCompatibilityRenderer(typeof(Ellipse), typeof(EllipseRenderer)); handlers.TryAddCompatibilityRenderer(typeof(Line), typeof(LineRenderer)); handlers.TryAddCompatibilityRenderer(typeof(Polyline), typeof(PolylineRenderer)); handlers.TryAddCompatibilityRenderer(typeof(Polygon), typeof(PolygonRenderer)); handlers.TryAddCompatibilityRenderer(typeof(Shapes.Rectangle), typeof(RectangleRenderer)); handlers.TryAddCompatibilityRenderer(typeof(RadioButton), typeof(RadioButtonRenderer)); handlers.TryAddCompatibilityRenderer(typeof(Slider), typeof(SliderRenderer)); handlers.TryAddCompatibilityRenderer(typeof(WebView), typeof(WebViewRenderer)); handlers.TryAddCompatibilityRenderer(typeof(SearchBar), typeof(SearchBarRenderer)); handlers.TryAddCompatibilityRenderer(typeof(Switch), typeof(SwitchRenderer)); handlers.TryAddCompatibilityRenderer(typeof(SwipeView), typeof(SwipeViewRenderer)); handlers.TryAddCompatibilityRenderer(typeof(DatePicker), typeof(DatePickerRenderer)); handlers.TryAddCompatibilityRenderer(typeof(TimePicker), typeof(TimePickerRenderer)); handlers.TryAddCompatibilityRenderer(typeof(Picker), typeof(PickerRenderer)); handlers.TryAddCompatibilityRenderer(typeof(Stepper), typeof(StepperRenderer)); handlers.TryAddCompatibilityRenderer(typeof(ProgressBar), typeof(ProgressBarRenderer)); handlers.TryAddCompatibilityRenderer(typeof(ScrollView), typeof(ScrollViewRenderer)); handlers.TryAddCompatibilityRenderer(typeof(ActivityIndicator), typeof(ActivityIndicatorRenderer)); handlers.TryAddCompatibilityRenderer(typeof(CheckBox), typeof(CheckBoxRenderer)); handlers.TryAddCompatibilityRenderer(typeof(TabbedPage), typeof(TabbedPageRenderer)); #if !WINDOWS handlers.TryAddCompatibilityRenderer(typeof(Shell), typeof(ShellRenderer)); #if !(MACCATALYST || MACOS) handlers.TryAddCompatibilityRenderer(typeof(OpenGLView), typeof(OpenGLViewRenderer)); #endif #else handlers.TryAddCompatibilityRenderer(typeof(Layout), typeof(LayoutRenderer)); #endif handlers.TryAddCompatibilityRenderer(typeof(NavigationPage), typeof(NavigationPageRenderer)); handlers.TryAddCompatibilityRenderer(typeof(CarouselPage), typeof(CarouselPageRenderer)); handlers.TryAddCompatibilityRenderer(typeof(Page), typeof(PageRenderer)); handlers.TryAddCompatibilityRenderer(typeof(FlyoutPage), typeof(FlyoutPageRenderer)); handlers.TryAddCompatibilityRenderer(typeof(RefreshView), typeof(RefreshViewRenderer)); handlers.TryAddCompatibilityRenderer(typeof(NativeViewWrapper), typeof(NativeViewWrapperRenderer)); handlers.TryAddCompatibilityRenderer(typeof(Cell), typeof(CellRenderer)); handlers.TryAddCompatibilityRenderer(typeof(ImageCell), typeof(ImageCellRenderer)); handlers.TryAddCompatibilityRenderer(typeof(EntryCell), typeof(EntryCellRenderer)); handlers.TryAddCompatibilityRenderer(typeof(TextCell), typeof(TextCellRenderer)); handlers.TryAddCompatibilityRenderer(typeof(ViewCell), typeof(ViewCellRenderer)); handlers.TryAddCompatibilityRenderer(typeof(SwitchCell), typeof(SwitchCellRenderer)); handlers.TryAddCompatibilityRenderer(typeof(Microsoft.Maui.Controls.Compatibility.RelativeLayout), typeof(DefaultRenderer)); handlers.TryAddCompatibilityRenderer(typeof(Microsoft.Maui.Controls.Compatibility.AbsoluteLayout), typeof(DefaultRenderer)); // This is for Layouts that currently don't work when assigned to LayoutHandler DependencyService.Register <Xaml.ResourcesLoader>(); DependencyService.Register <NativeBindingService>(); DependencyService.Register <NativeValueConverterService>(); DependencyService.Register <Deserializer>(); DependencyService.Register <ResourcesProvider>(); DependencyService.Register <Xaml.ValueConverterProvider>(); // Shimmed renderers go directly to the registrar to load Image Handlers Internals.Registrar.Registered.Register(typeof(FileImageSource), typeof(FileImageSourceHandler)); Internals.Registrar.Registered.Register(typeof(StreamImageSource), typeof(StreamImagesourceHandler)); Internals.Registrar.Registered.Register(typeof(UriImageSource), typeof(ImageLoaderSourceHandler)); Internals.Registrar.Registered.Register(typeof(FontImageSource), typeof(FontImageSourceHandler)); Internals.Registrar.Registered.Register(typeof(Microsoft.Maui.EmbeddedFont), typeof(Microsoft.Maui.EmbeddedFontLoader)); #endif #if __IOS__ || MACCATALYST Internals.Registrar.RegisterEffect("Xamarin", "ShadowEffect", typeof(ShadowEffect)); #endif }); builder.AddMauiCompat(); builder.RemapForControls(); return(builder); }
public static MauiAppBuilder UseMauiApp <[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] TApp>(this MauiAppBuilder builder, Func <IServiceProvider, TApp> implementationFactory) where TApp : class, IApplication { builder.Services.TryAddSingleton <IApplication>(implementationFactory); builder.SetupDefaults(); return(builder); }
internal static MauiAppBuilder ConfigureCrossPlatformLifecycleEvents(this MauiAppBuilder builder) => builder.ConfigureLifecycleEvents(events => events.AddiOS(OnConfigureLifeCycle));
public static MauiAppBuilder ConfigureTests(this MauiAppBuilder appHostBuilder, TestOptions options) { appHostBuilder.Services.AddSingleton(options); return(appHostBuilder); }
static MauiAppBuilder AddMauiCompat(this MauiAppBuilder builder) { builder.Services.TryAddEnumerable(ServiceDescriptor.Transient <IMauiInitializeService, MauiCompatInitializer>()); return(builder); }