static void Main(string[] args) { #if !NET461 Thread.CurrentThread.TrySetApartmentState(ApartmentState.STA); #endif try { var vm = new MainWindowViewModel(); var factory = new MainWindowDockFactory(); IDock layout = null; string path = DockSerializer.GetBasePath("Layout.json"); if (DockSerializer.Exists(path)) { layout = DockSerializer.Load <DockRoot>(path); } BuildAvaloniaApp().Start <MainWindow>(() => { // NOTE: Initialize layout after main window was created so child windows can be created. vm.Factory = factory; vm.Layout = layout ?? vm.Factory.CreateLayout(); vm.Factory.InitLayout(vm.Layout, vm); return(vm); }); vm.Layout.CurrentView.HideWindows(); DockSerializer.Save(path, vm.Layout); } catch (Exception ex) { Print(ex); } }