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