public void DockTo(DockPane pane, DockStyle dockStyle, int contentIndex) { if (dockStyle == DockStyle.Fill) { bool samePane = (Pane == pane); if (!samePane) { Pane = pane; } if (contentIndex == -1 || !samePane) { pane.SetContentIndex(Content, contentIndex); } else { DockContentCollection contents = pane.Contents; int oldIndex = contents.IndexOf(Content); int newIndex = contentIndex; if (oldIndex < newIndex) { newIndex += 1; if (newIndex > contents.Count - 1) { newIndex = -1; } } pane.SetContentIndex(Content, newIndex); } } else { DockPane paneFrom = DockPanel.DockPaneFactory.CreateDockPane(Content, pane.DockState, true); INestedPanesContainer container = pane.NestedPanesContainer; if (dockStyle == DockStyle.Left) { paneFrom.DockTo(container, pane, DockAlignment.Left, 0.5); } else if (dockStyle == DockStyle.Right) { paneFrom.DockTo(container, pane, DockAlignment.Right, 0.5); } else if (dockStyle == DockStyle.Top) { paneFrom.DockTo(container, pane, DockAlignment.Top, 0.5); } else if (dockStyle == DockStyle.Bottom) { paneFrom.DockTo(container, pane, DockAlignment.Bottom, 0.5); } paneFrom.DockState = pane.DockState; } }
public void DockTo(DockPane pane, DockStyle dockStyle, int contentIndex) { if (dockStyle == DockStyle.Fill) { for (int i = NestedPanes.Count - 1; i >= 0; i--) { DockPane paneFrom = NestedPanes[i]; for (int j = paneFrom.Contents.Count - 1; j >= 0; j--) { IDockContent c = paneFrom.Contents[j]; c.DockHandler.Pane = pane; if (contentIndex != -1) { pane.SetContentIndex(c, contentIndex); } c.DockHandler.Activate(); } } } else { DockAlignment alignment = DockAlignment.Left; if (dockStyle == DockStyle.Left) { alignment = DockAlignment.Left; } else if (dockStyle == DockStyle.Right) { alignment = DockAlignment.Right; } else if (dockStyle == DockStyle.Top) { alignment = DockAlignment.Top; } else if (dockStyle == DockStyle.Bottom) { alignment = DockAlignment.Bottom; } MergeNestedPanes(VisibleNestedPanes, pane.NestedPanesContainer.NestedPanes, pane, alignment, 0.5); } }
public void Show(DockPane pane, IDockContent beforeContent) { if (pane == null) { throw(new ArgumentNullException(Strings.DockContentHandler_Show_NullPane)); } if (beforeContent != null && pane.Contents.IndexOf(beforeContent) == -1) { throw(new ArgumentException(Strings.DockContentHandler_Show_InvalidBeforeContent)); } pane.DockPanel.SuspendLayout(true); DockPanel = pane.DockPanel; Pane = pane; pane.SetContentIndex(Content, pane.Contents.IndexOf(beforeContent)); Show(); pane.DockPanel.ResumeLayout(true, true); }