using System.Net.Http; using Microsoft.UI.Xaml; using Uno.Extensions; using Uno.Extensions.Configuration; using Uno.Extensions.Hosting; using Uno.Extensions.Localization; using Uno.Extensions.Navigation; using Uno.Resizetizer; using Uno.UI; namespace Marechai.App; public partial class App : Application { /// /// Initializes the singleton application object. This is the first line of authored code /// executed, and as such is the logical equivalent of main() or WinMain(). /// public App() { this.InitializeComponent(); } protected Window? MainWindow { get; private set; } protected IHost? Host { get; private set; } protected async override void OnLaunched(LaunchActivatedEventArgs args) { var builder = this.CreateBuilder(args) // Add navigation support for toolkit controls such as TabBar and NavigationView .UseToolkitNavigation() .Configure(host => host #if DEBUG // Switch to Development environment when running in DEBUG .UseEnvironment(Environments.Development) #endif .UseLogging(configure: (context, logBuilder) => { // Configure log levels for different categories of logging logBuilder .SetMinimumLevel( context.HostingEnvironment.IsDevelopment() ? LogLevel.Information : LogLevel.Warning) // Default filters for core Uno Platform namespaces .CoreLogLevel(LogLevel.Warning); // Uno Platform namespace filter groups // Uncomment individual methods to see more detailed logging //// Generic Xaml events //logBuilder.XamlLogLevel(LogLevel.Debug); //// Layout specific messages //logBuilder.XamlLayoutLogLevel(LogLevel.Debug); //// Storage messages //logBuilder.StorageLogLevel(LogLevel.Debug); //// Binding related messages //logBuilder.XamlBindingLogLevel(LogLevel.Debug); //// Binder memory references tracking //logBuilder.BinderMemoryReferenceLogLevel(LogLevel.Debug); //// DevServer and HotReload related //logBuilder.HotReloadCoreLogLevel(LogLevel.Information); //// Debug JS interop //logBuilder.WebAssemblyLogLevel(LogLevel.Debug); }, enableUnoLogging: true) .UseSerilog(consoleLoggingEnabled: true, fileLoggingEnabled: true) .UseConfiguration(configure: configBuilder => configBuilder .EmbeddedSource() .Section() ) // Enable localization (see appsettings.json for supported languages) .UseLocalization() .UseHttp((context, services) => { #if DEBUG // DelegatingHandler will be automatically injected services.AddTransient(); #endif }) .ConfigureServices((context, services) => { // TODO: Register your services //services.AddSingleton(); }) .UseNavigation(RegisterRoutes) ); MainWindow = builder.Window; #if DEBUG MainWindow.UseStudio(); #endif MainWindow.SetWindowIcon(); Host = await builder.NavigateAsync(); } private static void RegisterRoutes(IViewRegistry views, IRouteRegistry routes) { views.Register( new ViewMap(ViewModel: typeof(ShellViewModel)), new ViewMap(), new DataViewMap() ); routes.Register( new RouteMap("", View: views.FindByViewModel(), Nested: [ new("Main", View: views.FindByViewModel(), IsDefault: true), new("Second", View: views.FindByViewModel()), ] ) ); } }