Devexpress DockManager多页面浮动窗口会关闭所有页面的问题

注册 DockManager 的 ClosingPanel 事件

  

private void DockManager1_ClosingPanel(object sender, DockPanelCancelEventArgs e)
        {
            //判断是否为浮动窗体
            if (e.Panel.FloatForm != null)
            {
                //获取当前的rootpanel
                var activePanel = this.dockManager1.ActivePanel;
                if (activePanel != null)
                {
                    //获取当前显示的dockpanel
                    if (activePanel.ActiveChild != null)
                    {
                        //只关闭当前的panel(而不是关闭当前浮动窗体中的所有panel)
                        //且引发当前panel的close事件(如果不想引发,则使用activePanel.Visibility= DockVisibility.Hidden)
                        //引发的好处在于如果当前panel在关闭时会触发其它状态,则此时有效
                        activePanel.ActiveChild.Close();
                        //告知已处理过关闭事件
                        e.Cancel = true;
                    }
                    else
                    {
                        //使用系统的关闭事件
                        e.Cancel = false;
                    }
                }
            }

        }

  

posted @ 2021-01-08 14:10  人不自在  阅读(617)  评论(0编辑  收藏  举报