Beispiel #1
0
        /// <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));
        }
Beispiel #2
0
        /// <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));
        }
Beispiel #3
0
        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);
        }