void Document_DockStateChanged(object sender, EventArgs e) { if (_dockPanel.IsDisposed) { return; } DockingContainer dockingContainer = (DockingContainer)sender; EditorContentPanel panel = dockingContainer.Panel; ContentDocument docToRemove = null; if (panel.DockingContainer.DockState == DockingState.Unknown || panel.DockingContainer.DockState == DockingState.Hidden) { foreach (ContentDocument document in _panes) { if (document.Control == panel) { if (dockingContainer.IsShowing) { dockingContainer.IsShowing = false; } else { docToRemove = document; } break; } } } if (docToRemove != null) { RemoveDocument(docToRemove); } else { panel.DockingContainer.Refresh(); } }
public DockingContainer(EditorContentPanel panel) { _panel = panel; Controls.Add(panel); panel.Dock = DockStyle.Fill; }