internal void HideShelfView(ShelfView shelfView) { if (shelfView.Content.IsDocked) { if (shelfView.Content.IsAutoHidden) // auto-hide mode { // only one auto-hide window can be showing at a given time, so calling this method should hide it _form.DockingManager.RemoveShowingAutoHideWindows(); } else { // content is pinned - putting it in auto-hide mode should hide it _form.DockingManager.ToggleContentAutoHide(shelfView.Content); // the window seems to remain active even though it is not visible, which doesn't make much sense // therefore, let's report it as inactive shelfView.SetActiveStatus(false); // since we don't seem to get a content-hiding message in this case, need to explicitly set this shelfView.SetVisibleStatus(false); } } else { // floating _form.DockingManager.HideContent(shelfView.Content); // since we don't seem to get a content-hiding message in this case, need to explicitly set this shelfView.SetVisibleStatus(false); } }
internal void RemoveShelfView(ShelfView shelfView) { shelfView.SaveState(); _form.DockingManager.Contents.Remove(shelfView.Content); shelfView.SetVisibleStatus(false); }