mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
54 lines
1.5 KiB
C#
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();
|
|
}
|
|
}
|
|
} |