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); }
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(); }
/// <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(); } }
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"); }