internal static string CreateEditorDocumentXmlConfiguration(List <WorkspaceControllerForWindow.WindowConfig> config, int selectedIndex = -1)
        {
            var dockingManager = new KryptonDockingManager();

            dockingManager.PageSaving += DockingManager_PageSaving;

            var dockingWorkspace = new KryptonDockingWorkspace("DockingWorkspace");

            dockingManager.Add(dockingWorkspace);

            var pages = new List <KryptonPage>();

            foreach (var cfg in config)
            {
                pages.Add(new KryptonPage()
                {
                    Tag = cfg
                });
            }

            var workspace = dockingManager.AddToWorkspace("DockingWorkspace", pages.ToArray());

            if (selectedIndex != -1)
            {
                workspace.SelectPage(pages[selectedIndex].UniqueName);
            }

            using (var stream = new MemoryStream())
            {
                dockingManager.SaveConfigToStream(stream, System.Text.Encoding.Unicode, Formatting.None);
                dockingManager.Dispose();

                return(System.Text.Encoding.Unicode.GetString(stream.ToArray()));
            }
        }
        KryptonDockingWorkspace AddToWorkspace(DockWindow window, bool select)
        {
            AddDockWindowInternal(window, false);

            var workspace = dockingManager.AddToWorkspace("DockingWorkspace", new KryptonPage[] { window.KryptonPage });

            // call PerformLayout() to workspace.DockableWorkspaceControl.ActiveCell update !
            workspace.DockableWorkspaceControl.PerformLayout();

            if (select)
            {
                SelectDockWindow(window);
            }

            return(workspace);
        }