using AdventureWorks.DataLayer; using AdventureWorks.EntityLayer; using AdventureWorks.MAUI.CommandClasses; using AdventureWorks.MAUI.Views; using Common.Library; using Microsoft.Extensions.Logging; //#if Windows using Microsoft.Maui.LifecycleEvents; //#endif namespace AdventureWorks.MAUI { public static class MauiProgram { public static MauiApp CreateMauiApp() { var builder = MauiApp.CreateBuilder(); builder .UseMauiApp() .ConfigureFonts(fonts => { fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"); fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold"); }); //DI Services builder.Services.AddScoped, UserRepository>(); builder.Services.AddScoped, ColorRepository>(); builder.Services.AddScoped, PhoneTypeRepository>(); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped, ProductRepository>(); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); #if XWINDOWS SetWindowOptions(builder); SetWindowHandlers(); #endif #if DEBUG builder.Logging.AddDebug(); #endif return builder.Build(); } #if WINDOWS public static void SetWindowOptions(MauiAppBuilder builder) { builder.ConfigureLifecycleEvents(events => { events.AddWindows(wndLifeCycleBuilder => { wndLifeCycleBuilder.OnWindowCreated(window => { IntPtr nativeWindowHandle = WinRT.Interop.WindowNative.GetWindowHandle(window); Microsoft.UI.WindowId win32WindowsId = Microsoft.UI.Win32Interop.GetWindowIdFromWindow(nativeWindowHandle); Microsoft.UI.Windowing.AppWindow winuiAppWindow = Microsoft.UI.Windowing.AppWindow.GetFromWindowId(win32WindowsId); if(winuiAppWindow.Presenter is Microsoft.UI.Windowing.OverlappedPresenter p) { p.Maximize(); //p.IsResizable = false; // Uncomment to disable resizing //p.IsMaximizable = false; // Uncomment to disable maximizing //p.IsMinimizable = false; // Uncomment to disable minimizing } }); }); }); } #endif #if WINDOWS public static void SetWindowHandlers() { // Customize the Switch control for Windows Microsoft.Maui.Handlers.SwitchHandler.Mapper .AppendToMapping("Custom", (h,v) => { h.PlatformView.OffContent = "No"; h.PlatformView.OnContent = "Yes"; h.PlatformView.MinWidth = 0; }); } #endif } }