public override void OnFrameworkInitializationCompleted()
        {
            this.CreateDependencies();

            var factory = new ToolDockFactory(_messagePropagator, _dependencies);

            var mainWindowViewModel = new MainWindowViewModel(factory, CreateLayout(factory), _messagePropagator);

            if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
            {
                var mainWindow = new MainWindow
                {
                    DataContext = mainWindowViewModel
                };

                mainWindow.Closing += (sender, args) =>
                {
                    mainWindowViewModel.Layout.Close.Execute(mainWindowViewModel.Layout);
                };

                desktop.MainWindow = mainWindow;

                desktop.Exit += (sender, args) =>
                {
                    mainWindowViewModel.Layout.Close.Execute(mainWindowViewModel.Layout);
                };
            }

            base.OnFrameworkInitializationCompleted();
        }
Esempio n. 2
0
        public MainWindowViewModel(ToolDockFactory factory, IDock layout, IMessagePropagator messagePropagator)
        {
            _messagePropagator = messagePropagator;

            _layout = layout;

            _factory = factory;

            _menuItems = MenuBarFactory.GetAllMenuBarItems();
            _menuItems.Add(factory.GetMenuBarItems());

            Task.Run(() =>
            {
                GameEngine engine = new GameEngine(_messagePropagator);
                engine.Run();
            });
        }