注册 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;
                    }
                }
            }

        }

  

相关文章:

  • 2022-01-09
  • 2022-02-13
  • 2022-12-23
  • 2022-02-18
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-12-23
  • 2021-05-24
  • 2022-01-27
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-26
相关资源
相似解决方案