예제 #1
0
파일: Program.cs 프로젝트: nopara73/Dock
        static void Main(string[] args)
        {
#if !NET461
            Thread.CurrentThread.TrySetApartmentState(ApartmentState.STA);
#endif
            try
            {
                var   vm      = new MainWindowViewModel();
                var   factory = new DemoDockFactory();
                IDock layout  = null;

                string path = ModelSerializer.GetBasePath("Layout.json");
                if (ModelSerializer.Exists(path))
                {
                    layout = ModelSerializer.Load <RootDock>(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.Factory.CloseLayout(vm.Layout);

                ModelSerializer.Save(path, vm.Layout);
            }
            catch (Exception ex)
            {
                Print(ex);
            }
        }
예제 #2
0
파일: Program.cs 프로젝트: dbinev/Dock
        private static void Main(string[] args)
        {
            try
            {
                var   serializer = new DockJsonSerializer(typeof(ObservableCollection <>));
                var   vm         = new MainWindowViewModel();
                var   factory    = new DemoDockFactory(new DemoData());
                IDock layout     = null;

                string path = serializer.GetBasePath("Layout.json");
                if (serializer.Exists(path))
                {
                    layout = serializer.Load <RootDock>(path);
                }

                BuildAvaloniaApp().Start <MainWindow>(() =>
                {
                    vm.Factory = factory;
                    vm.Layout  = layout ?? vm.Factory.CreateLayout();
                    vm.Factory.InitLayout(vm.Layout);
                    return(vm);
                });

                if (vm.Layout is IDock dock)
                {
                    dock.Close();
                }

                serializer.Save(path, vm.Layout);
            }
            catch (Exception ex)
            {
                Print(ex);
            }
        }