Files
MeWeb/src/MeWeb.App/App.axaml.cs
T

43 lines
1.4 KiB
C#
Raw Normal View History

using Avalonia;
using Avalonia.Controls;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
using MeWeb.App.Services;
using MeWeb.App.ViewModels;
using MeWeb.App.Views;
using Microsoft.Extensions.DependencyInjection;
namespace MeWeb.App;
public partial class App : Application
{
public static IServiceProvider Services { get; private set; }
public override void Initialize()
{
AvaloniaXamlLoader.Load(this);
#if DEBUG
this.AttachDeveloperTools();
#endif
}
public override void OnFrameworkInitializationCompleted()
{
Services = new ServiceCollection().AddMeWebApp().BuildServiceProvider();
var stored = AppSettings.Read();
Localizer.Instance.SetLanguage(Languages.Find(stored.Language) ?? Languages.ForCulture(System.Globalization.CultureInfo.CurrentUICulture));
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
desktop.MainWindow = new MainWindow { Content = CreateMainView() };
else if (ApplicationLifetime is IActivityApplicationLifetime activity)
activity.MainViewFactory = CreateMainView;
else if (ApplicationLifetime is ISingleViewApplicationLifetime single)
single.MainView = CreateMainView();
base.OnFrameworkInitializationCompleted();
}
static Control CreateMainView() => new MainView { DataContext = Services.GetRequiredService<MainViewModel>() };
}