using Avalonia; using Avalonia.Markup.Xaml; using FluentAvalonia.Styling; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using PropertyChanged; using System; using System.IO; using TheXamlGuy.Framework.Avalonia; using TheXamlGuy.Framework.Core; namespace Builder { [DoNotNotify] public partial class App : Application { public override void Initialize() { AvaloniaXamlLoader.Load(this); } public override async void OnFrameworkInitializationCompleted() { IHost? host = new HostBuilder() .UseContentRoot(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "Builder"), true) .ConfigureTemplates(configuration => { configuration.Add(); configuration.Add("Main"); configuration.Add("ProjectConfiguration"); configuration.Add("StartProjectConfiguration"); configuration.Add("CreateProjectConfiguration"); configuration.Add("ExistingProjectConfiguration"); configuration.Add("Project"); configuration.Add("PageDesigner"); configuration.Add("Pages"); configuration.Add("AddPage"); }) .ConfigureServices(ConfigureServices) .Build(); await host.RunAsync(); base.OnFrameworkInitializationCompleted(); } private void ConfigureServices(HostBuilderContext context, IServiceCollection services) { services.AddReqiredCore() .AddRequiredAvalonia() .AddHostedService() .RegisterHandlers(); } } }