/// <summary> /// Cleanly hide a visible Anchorable. /// </summary> /// <param name="dockingManager">The Root item DockingManager.</param> /// <param name="content">Either a View, ViewModel or <see cref="Xceed.Wpf.AvalonDock.Layout.LayoutAnchorable"/> /// contained in the layout of the DockingManager as an Anchorable.</param> /// <param name="removeAsActiveContent">If the content is currently active, clear the Active Content of the /// DockingManager when hidden.</param> /// <returns>True is successfully hidden, otherwise false.</returns> public static bool HideAnchorable(this DockingManager dockingManager, object content, bool removeAsActiveContent) { if (dockingManager == null) { throw new ArgumentNullException(nameof(dockingManager)); } if (content == null) { return(true); } LayoutAnchorable anchorable = dockingManager.FindAnchorable(content); if (anchorable == null) { return(false); } if (anchorable.IsHidden || dockingManager.IsActuallyHidden(anchorable)) { return(true); } if (dockingManager.GetLayoutItemFromModel(anchorable) is LayoutAnchorableItem item) { item.HideCommand.Execute(true); } if (removeAsActiveContent && dockingManager.ActiveContent == anchorable) { dockingManager.ActiveContent = null; } return(dockingManager.IsActuallyHidden(anchorable)); }
/// <summary> /// Cleanly show a hidden Anchorable. /// </summary> /// <param name="dockingManager">The Root item DockingManager.</param> /// <param name="content">Either a View, ViewModel or <see cref="Xceed.Wpf.AvalonDock.Layout.LayoutAnchorable"/> /// contained in the layout of the DockingManager as an Anchorable.</param> /// <param name="setAsActiveContent">Set the content as the Active Content of the DockingManager when shown.</param> /// <returns>True is successfully shown, otherwise false.</returns> public static bool ShowAnchorable(this DockingManager dockingManager, object content, bool setAsActiveContent) { if (dockingManager == null) { throw new ArgumentNullException(nameof(dockingManager)); } if (content == null) { return(true); } LayoutAnchorable anchorable = dockingManager.FindAnchorable(content); if (anchorable == null) { return(false); } if (anchorable.IsHidden || dockingManager.IsActuallyHidden(anchorable)) { anchorable.Show(); } if (setAsActiveContent && dockingManager.ActiveContent != anchorable) { dockingManager.ActiveContent = anchorable; } return(!dockingManager.IsActuallyHidden(anchorable)); }
public static bool FloatAnchorable(this DockingManager dockingManager, object content, bool setAsActiveContent) { if (dockingManager == null) { throw new ArgumentNullException(nameof(dockingManager)); } LayoutAnchorable anchorable = dockingManager.FindAnchorable(content); bool shown = dockingManager.ShowAnchorable(anchorable, setAsActiveContent); LayoutItem item = dockingManager.GetLayoutItemFromModel(anchorable); if (shown && !anchorable.IsFloating && item != null) { item.FloatCommand.Execute(true); } return(anchorable.IsFloating); }