BlazorSingleViewLifetime.cs 1010 B

123456789101112131415161718192021222324252627282930313233
  1. using Avalonia.Controls;
  2. using Avalonia.Controls.ApplicationLifetimes;
  3. using Avalonia.Media;
  4. namespace Avalonia.Web.Blazor
  5. {
  6. public class BlazorSingleViewLifetime : ISingleViewApplicationLifetime
  7. {
  8. public Control MainView { get; set; }
  9. }
  10. public static class WebAppBuilder
  11. {
  12. public static T SetupWithSingleViewLifetime<T>(
  13. this T builder)
  14. where T : AppBuilderBase<T>, new()
  15. {
  16. return builder.SetupWithLifetime(new BlazorSingleViewLifetime());
  17. }
  18. public static AvaloniaBlazorAppBuilder Configure<TApp>()
  19. where TApp : Application, new()
  20. {
  21. var builder = AvaloniaBlazorAppBuilder.Configure<TApp>()
  22. .UseSkia()
  23. .With(new SkiaOptions { CustomGpuFactory = () => new BlazorSkiaGpu() });
  24. AvaloniaLocator.CurrentMutable.Bind<FontManager>().ToConstant(new FontManager(new CustomFontManagerImpl()));
  25. return builder;
  26. }
  27. }
  28. }