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) { checked { if (dockStyle == DockStyle.Fill) { bool flag = this.Pane == pane; if (!flag) { this.Pane = pane; } if (contentIndex == -1 || !flag) { pane.SetContentIndex(this.Content, contentIndex); } else { DockContentCollection contents = pane.Contents; int num = contents.IndexOf(this.Content); int num2 = contentIndex; if (num < num2) { num2++; if (num2 > contents.Count - 1) { num2 = -1; } } pane.SetContentIndex(this.Content, num2); } } else { DockPane dockPane = this.DockPanel.DockPaneFactory.CreateDockPane(this.Content, pane.DockState, true); INestedPanesContainer nestedPanesContainer = pane.NestedPanesContainer; if (dockStyle == DockStyle.Left) { dockPane.DockTo(nestedPanesContainer, pane, DockAlignment.Left, 0.5); } else { if (dockStyle == DockStyle.Right) { dockPane.DockTo(nestedPanesContainer, pane, DockAlignment.Right, 0.5); } else { if (dockStyle == DockStyle.Top) { dockPane.DockTo(nestedPanesContainer, pane, DockAlignment.Top, 0.5); } else { if (dockStyle == DockStyle.Bottom) { dockPane.DockTo(nestedPanesContainer, pane, DockAlignment.Bottom, 0.5); } } } } dockPane.DockState = pane.DockState; } } }