Exemple #1
0
        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);
            }
        }
        public void Serialization0()
        {
            DockControlViewModel dockControl = CreateDockLayout();

            // Serialize layout.
            var xElement1 = DockSerializer.Save(dockControl);

            // Make some changes.
            dockControl.DockStrategy.Close(dockControl.FloatWindows[0]);

            // Deserialize and serialize again.
            DockSerializer.Load(dockControl, xElement1);
            var xElement2 = DockSerializer.Save(dockControl);

            // We want to compare the two created XMLs. But first we must remove the
            // LastActivation="..." entries, because they will not match.
            var string1 = xElement1.ToString();
            var string2 = xElement2.ToString();
            var r       = new Regex(@"LastActivation="".*""");

            string1 = r.Replace(string1, string.Empty);
            string2 = r.Replace(string2, string.Empty);

            Assert.AreEqual(string1, string2);
        }
Exemple #3
0
        private void OnDeserialize(object sender, RoutedEventArgs e)
        {
            var xElement = XElement.Parse(TextBox0.Text);

            DockSerializer.Load(DockControlViewModel, xElement);
            xElement = DockSerializer.Save(DockControlViewModel);

            TextBox1.Text = xElement.ToString();
        }
Exemple #4
0
 /// <summary>
 /// Saves the docking layout.
 /// </summary>
 /// <param name="excludeNonPersistentItems">
 /// <see langword="true"/> to exclude non-persistent <see cref="IDockTabItem"/>s.
 /// <see langword="false"/> to store the layout of all (persistent and non-persistent)
 /// <see cref="IDockTabItem"/>s.
 /// </param>
 /// <returns>The <see cref="XElement"/> with the serialized layout.</returns>
 /// <inheritdoc cref="DockSerializer.Save(IDockControl,bool)"/>
 public XElement SaveLayout(bool excludeNonPersistentItems = false)
 {
     try
     {
         DockStrategy.Begin();
         return(DockSerializer.Save(this, excludeNonPersistentItems));
     }
     finally
     {
         DockStrategy.End();
     }
 }
Exemple #5
0
        private void OnSerialize(object sender, RoutedEventArgs e)
        {
            var xElement = DockSerializer.Save(DockControlViewModel);

            TextBox0.Text = xElement.ToString();
        }
 private void OnSaveLayout(object sender, RoutedEventArgs eventArgs)
 {
     new XDocument(DockSerializer.Save(DockControlViewModel)).Save("DockControlTest.Layout");
 }