Files
MauiCourse/AdventureWorks.MAUI/MauiProgram.cs
2025-08-18 08:35:23 +02:00

74 lines
2.4 KiB
C#

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<App>()
.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
});
#if WINDOWS
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
}
}