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; }
public App() { _container = new Container(); _container.Options.ResolveUnregisteredConcreteTypes = true; _container.RegisterSingleton <MqttClientService>(); var viewLocator = new ViewLocator(_container); DataTemplates.Add(viewLocator); }
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)); }