1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2025-12-13 05:48:35 +00:00
Robert f38a9e9e55 Rename Avalonia projects
Add Avalonia platform projects
2021-11-18 00:18:13 +01:00

54 lines
1.5 KiB
C#

using Artemis.Core.Ninject;
using Artemis.UI.Ninject;
using Artemis.UI.Screens.Root.ViewModels;
using Artemis.UI.Shared.Ninject;
using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
using Avalonia.Threading;
using FluentAvalonia.Styling;
using Ninject;
using ReactiveUI;
using Splat.Ninject;
namespace Artemis.UI.Windows
{
public class App : Application
{
private StandardKernel _kernel = null!;
public override void Initialize()
{
InitializeNinject();
RxApp.MainThreadScheduler = AvaloniaScheduler.Instance;
AvaloniaXamlLoader.Load(this);
}
public override void OnFrameworkInitializationCompleted()
{
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{
desktop.MainWindow = new MainWindow
{
DataContext = _kernel.Get<RootViewModel>()
};
AvaloniaLocator.Current.GetService<FluentAvaloniaTheme>().ForceNativeTitleBarToTheme(desktop.MainWindow, "Dark");
}
base.OnFrameworkInitializationCompleted();
}
private void InitializeNinject()
{
_kernel = new StandardKernel();
_kernel.Settings.InjectNonPublic = true;
_kernel.Load<CoreModule>();
_kernel.Load<UIModule>();
_kernel.Load<SharedUIModule>();
_kernel.UseNinjectDependencyResolver();
}
}
}