1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
| using Avalonia; using Avalonia.Controls; using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Markup.Xaml; using Microsoft.Extensions.DependencyInjection; using SukiUI.Controls; using SukiUI.Demo.Common; using SukiUI.Demo.Features.ControlsLibrary; using SukiUI.Demo.Features.ControlsLibrary.Colors; using SukiUI.Demo.Features.ControlsLibrary.Dialogs; using SukiUI.Demo.Features.ControlsLibrary.DockControls; using SukiUI.Demo.Features.ControlsLibrary.StackPage; using SukiUI.Demo.Features.ControlsLibrary.TabControl; using SukiUI.Demo.Features.ControlsLibrary.Toasts; using SukiUI.Demo.Features.CustomTheme; using SukiUI.Demo.Features.Dashboard; using SukiUI.Demo.Features.Effects; using SukiUI.Demo.Features.Helpers; using SukiUI.Demo.Features.Playground; using SukiUI.Demo.Features.Splash; using SukiUI.Demo.Features.Theming; using SukiUI.Demo.Services; using SukiUI.Dialogs; using SukiUI.Toasts;
namespace SukiUI.Demo;
public class App : Application
{ public override void Initialize() { AvaloniaXamlLoader.Load(this); }
public override void OnFrameworkInitializationCompleted() { if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) { var services = new ServiceCollection(); services.AddSingleton(desktop); var views = ConfigureViews(services); var provider = ConfigureServices(services); DataTemplates.Add(new ViewLocator(views)); desktop.MainWindow = views.CreateView<SukiUIDemoViewModel>(provider) as Window; }
else if (ApplicationLifetime is ISingleViewApplicationLifetime singleView) { var services = new ServiceCollection(); services.AddSingleton(singleView); var views = ConfigureViews(services); var provider = ConfigureServices(services); DataTemplates.Add(new ViewLocator(views));
singleView.MainView = new SukiMainHost() { Hosts = [ new SukiDialogHost { Manager = new SukiDialogManager() } ], Content = views.CreateView<DialogViewModel>(provider) }; }
base.OnFrameworkInitializationCompleted();
}
private static SukiViews ConfigureViews(ServiceCollection services)
{
return new SukiViews()
.AddView<SukiUIDemoView, SukiUIDemoViewModel>(services)
.AddView<SplashView, SplashViewModel>(services) .AddView<ThemingView, ThemingViewModel>(services) .AddView<PlaygroundView, PlaygroundViewModel>(services) .AddView<EffectsView, EffectsViewModel>(services) .AddView<DashboardView, DashboardViewModel>(services) .AddView<ButtonsView, ButtonsViewModel>(services) .AddView<CardsView, CardsViewModel>(services) .AddView<CollectionsView, CollectionsViewModel>(services) .AddView<ContextMenusView, ContextMenusViewModel>(services) .AddView<DockView, DockViewModel>(services) .AddView<DockMvvmView, DockMvvmViewModel>(services) .AddView<ExpanderView, ExpanderViewModel>(services) .AddView<IconsView, IconsViewModel>(services) .AddView<InfoBarView, InfoBarViewModel>(services) .AddView<MiscView, MiscViewModel>(services) .AddView<ProgressView, ProgressViewModel>(services) .AddView<PropertyGridView, PropertyGridViewModel>(services) .AddView<TextView, TextViewModel>(services) .AddView<TogglesView, TogglesViewModel>(services) .AddView<ToastsView, ToastsViewModel>(services) .AddView<TabControlView, TabControlViewModel>(services) .AddView<StackPageView, StackPageViewModel>(services) .AddView<DialogsView, DialogsViewModel>(services) .AddView<HelpersView, HelpersViewModel>(services) .AddView<ColorsView, ColorsViewModel>(services) .AddView<ExperimentalView, ExperimentalViewModel>(services)
.AddView<DocumentText, DocumentTextViewModel>(services) .AddView<ErrorList, ErrorListViewModel>(services) .AddView<OutputView, OutputViewModel>(services) .AddView<PropertiesView, PropertiesViewModel>(services) .AddView<SolutionExplore, SolutionExploreViewModel>(services)
.AddView<DialogView, DialogViewModel>(services) .AddView<VmDialogView, VmDialogViewModel>(services) .AddView<RecursiveView, RecursiveViewModel>(services) .AddView<CustomThemeDialogView, CustomThemeDialogViewModel>(services); } private static ServiceProvider ConfigureServices(ServiceCollection services) { services.AddSingleton<ClipboardService>(); services.AddSingleton<PageNavigationService>(); services.AddSingleton<ISukiToastManager, SukiToastManager>(); services.AddSingleton<ISukiDialogManager, SukiDialogManager>(); return services.BuildServiceProvider(); } }
|