/// <summary>
 /// Slide the specified page into view and optionally select.
 /// </summary>
 /// <param name="uniqueName">Name of page to slide into view.</param>
 /// <param name="select">True to select the page; otherwise false.</param>
 public void SlidePageOut(string uniqueName, bool select)
 {
     // Search each of our AutoHiddenGroup entries
     for (var i = 0; i < Count; i++)
     {
         if (this[i] is KryptonDockingAutoHiddenGroup ahg)
         {
             // If the target page is inside this group
             KryptonPage page = ahg.AutoHiddenGroupControl.Pages[uniqueName];
             if (page != null)
             {
                 // Request the sliding panel slide itself into view with the provided page
                 KryptonAutoHiddenProxyPage proxyPage = (KryptonAutoHiddenProxyPage)page;
                 _slidePanel.SlideOut(proxyPage.Page, ahg.AutoHiddenGroupControl, select);
                 break;
             }
         }
     }
 }
 /// <summary>
 /// Propagates a page list request down the hierarchy of docking elements.
 /// </summary>
 /// <param name="state">Request that should result in pages collection being modified.</param>
 /// <param name="pages">Pages collection for modification by the docking elements.</param>
 public override void PropogatePageList(DockingPropogatePageList state, KryptonPageCollection pages)
 {
     switch (state)
     {
     case DockingPropogatePageList.All:
     case DockingPropogatePageList.AutoHidden:
         for (var i = AutoHiddenGroupControl.Pages.Count - 1; i >= 0; i--)
         {
             // Only add real pages and not just placeholders
             KryptonPage page = AutoHiddenGroupControl.Pages[i];
             if ((page != null) && page is not KryptonStorePage)
             {
                 // Remember the real page is inside a proxy!
                 KryptonAutoHiddenProxyPage proxyPage = (KryptonAutoHiddenProxyPage)page;
                 pages.Add(proxyPage.Page);
             }
         }
         break;
     }
 }