forked from amkovkov/GranuSightSoftware2
47 lines
1.9 KiB
C#
47 lines
1.9 KiB
C#
using Avalonia;
|
|
using Avalonia.Controls.ApplicationLifetimes;
|
|
using Avalonia.Markup.Xaml;
|
|
|
|
using GSS2.Test.ViewModels;
|
|
using GSS2.Test.Views;
|
|
|
|
namespace GSS2.Test;
|
|
|
|
public partial class App : Application
|
|
{
|
|
public override void Initialize()
|
|
{
|
|
AvaloniaXamlLoader.Load(this);
|
|
}
|
|
|
|
public override void OnFrameworkInitializationCompleted()
|
|
{
|
|
if (ApplicationLifetime is null)
|
|
throw new InvalidOperationException("Application framework initialization cannot be fulfilled, ApplicationLifetime is null");
|
|
|
|
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
|
|
{
|
|
Console.WriteLine("Application running in classic style");
|
|
desktop.Startup += (_, _) => Program.ApplicationHost.RunAsync();
|
|
desktop.Exit += (_, _) => Program.ApplicationHost.StopAsync();
|
|
|
|
desktop.MainWindow = new MainWindow()
|
|
{
|
|
DataContext = Program.ApplicationHost.Services.GetRequiredService<MainWindowViewModel>()
|
|
};
|
|
}
|
|
else if (ApplicationLifetime is ISingleViewApplicationLifetime singleView)
|
|
{
|
|
Console.WriteLine("Application running in single view style");
|
|
var loggerFactory = Program.ApplicationHost.Services.GetRequiredService<ILoggerFactory>();
|
|
var logger = loggerFactory.CreateLogger<MainView>();
|
|
singleView.MainView = new MainView(logger)
|
|
{
|
|
DataContext = Program.ApplicationHost.Services.GetRequiredService<MainViewModel>()
|
|
};
|
|
}
|
|
else
|
|
throw new InvalidOperationException($"Application framework initialization cannot be fulfilled, ApplicationLifetime has unknown type inherited from: {string.Join(", ", ApplicationLifetime.GetType().GetInterfaces().Select(i => i.FullName))}");
|
|
base.OnFrameworkInitializationCompleted();
|
|
}
|
|
} |