Exemple #1
0
        private void InitializeComponent()
        {
            DataTemplates.Add(new ViewLocator <ReactiveObject>());
            Styles.Add(new DefaultTheme());

            Child = new Grid
            {
                RowDefinitions = new RowDefinitions("*,Auto"),
                Children       = new Controls.Controls
                {
                    new TabControl
                    {
                        Items = new[]
                        {
                            new TabItem
                            {
                                Header = "Logical Tree",
                                [!ContentControl.ContentProperty] = _viewModel.WhenAnyValue(x => x.LogicalTree),
                            },
                            new TabItem
                            {
                                Header = "Visual Tree",
                                [!ContentControl.ContentProperty] = _viewModel.WhenAnyValue(x => x.VisualTree),
                            }
                        },
                    },
                    new StackPanel
                    {
                        Orientation        = Orientation.Horizontal,
                        Gap                = 4,
                        [Grid.RowProperty] = 1,
                        Children           = new Controls.Controls
                        {
                            new TextBlock
                            {
                                Text = "Focused: "
                            },
                            new TextBlock
                            {
                                [!TextBlock.TextProperty] = _viewModel
                                                            .WhenAnyValue(x => x.FocusedControl)
                                                            .Select(x => x?.GetType().Name ?? "(null)")
                            },
                            new TextBlock
                            {
                                Text = "Pointer Over: "
                            },
                            new TextBlock
                            {
                                [!TextBlock.TextProperty] = _viewModel
                                                            .WhenAnyValue(x => x.PointerOverElement)
                                                            .Select(x => x?.GetType().Name ?? "(null)")
                            }
                        }
                    }
                }
            };
        }
        public MainWindow()
        {
            this.InitializeComponent();
#if DEBUG
            this.AttachDevTools();
#endif
            using var initScope = new TimedScope(LoggingScope.Global($"{nameof(MainWindow)}.InitializeServices"));

            Session = new Session();

            var menuProvider = new MenuProvider();
            Services.AddService <IMenuProvider>(menuProvider);

            Session.EditorViewModel = new EditorViewModel(menuProvider);
            Session.Services        = Services;

            Services.AddService <Window>(this);
            Services.AddService <Session>(Session);
            Services.AddService <IRootViewModelContainer>(Session);
            Services.AddService <ViewRegistry>(new ViewRegistry());
            Services.AddService <IDialogService>(new DialogService(Services));

            var viewDataTemplate = new ViewDataTemplate(Services);
            Services.AddService <IViewUpdater>(viewDataTemplate);
            DataTemplates.Add(viewDataTemplate);

            Services.AddService <IUndoService>(new UndoService());
            Services.AddService <IMemberViewProvider <IViewBuilder> >(new MemberViewProvider(Services));

            var commandDispatcher = new CommandDispatcher(Services);
            Services.AddService <ICommandDispatcher>(commandDispatcher);
            // after all synchronous code caused by user input has been executed
            // we begin the commands processing.
            InputManager.Instance.PostProcess.Subscribe(async(e) => await commandDispatcher.ProcessDispatchedCommands());

            var tabManager = new SimpleTabManager(Services);
            Services.AddService <ITabManager>(tabManager);
            Services.AddService <SimpleTabManager>(tabManager);

            var assetManager = new AssetManager(Services);
            Services.AddService <IAssetManager>(assetManager);
            Services.AddService <IAssetEditorRegistry>(assetManager);

            var pluginRegistry = new PluginRegistry(Services);
            pluginRegistry.RefreshAvailablePlugins();

            Services.AddService <PluginRegistry>(pluginRegistry);

            foreach (var initialPlugin in pluginRegistry.AvailablePlugins)
            {
                pluginRegistry.Register(initialPlugin);
            }

            // It will be rendered by the DataTemplate
            DataContext = Session.EditorViewModel;
        }
Exemple #3
0
    public App()
    {
        _container = new Container();
        _container.Options.ResolveUnregisteredConcreteTypes = true;
        _container.RegisterSingleton <MqttClientService>();

        var viewLocator = new ViewLocator(_container);

        DataTemplates.Add(viewLocator);
    }
Exemple #4
0
        public SimpleLoginDemoApplication()
        {
            var avaloniaBaseUri = new Uri("avares://Avalonia.Themes.Default");

            Styles.Add(new StyleInclude(avaloniaBaseUri)
            {
                Source = new Uri("DefaultTheme.xaml", UriKind.Relative)
            });
            Styles.Add(new StyleInclude(avaloniaBaseUri)
            {
                Source = new Uri("Accents/BaseDark.xaml", UriKind.Relative)
            });

            var baseUri = new Uri("avares://SimpleLoginDemo.Presentation");

            Styles.Add(new StyleInclude(baseUri)
            {
                Source = new Uri("Resources/Styles.xaml", UriKind.Relative)
            });
            DataTemplates.Add(new DataTemplateInclude(baseUri)
            {
                Source = new Uri("Resources/Templates.xaml", UriKind.Relative)
            });
        }
 public App(IWindowService windowService, IContainer container)
 {
     _windowService = windowService;
     DataTemplates.Add(new ViewLocator(container));
 }