dockpanel可停靠布局设计

daijian945 / 2023-08-05 / 原文

步骤如下

1:管理NUGET包中安装 下面两个包:DockPanelSuite 和 DockPanelSuite.ThemeVS2015


2:在工具箱中找到 DockPanel  和 VS2015BlueTheme  拖入主界面


3:添加三个窗体FormLeft , FormCenter , FormRight,让它们都继承DockContent
4:    在主界面加入代码:

            dockPanel1.Theme = vS2015BlueTheme1;
            //左停靠窗口
            FormLeft formLeft = new FormLeft();
            formLeft.Show(dockPanel1, DockState.DockLeft);
            //中间停靠窗口
            FormCenter  fc= new FormCenter();
            fc.Show(dockPanel1, DockState.DockLeft);
            //右停靠窗口
            FormRight fr = new FormRight();
            fr.Show(dockPanel1, DockState.DockRight);
    //底部停靠
    FormBottom fb = new FormBottom();
              fb.Show(dockPanel1, DockState.DockBottom);   

 5:有时需要更改停靠优先级
        代码:
        dockPanel1.UpdateDockWindowZOrder(DockStyle.Left, true);    //更改停靠优先级

6:当同时添加两个DockState.DockBottom,也就是同时添加两个窗体停靠位置都设为底部的时候

  会以选项卡的形式合并停靠。

7、DockTo这个方法能使上面这种情况变为并排停靠而非选项卡方式的合并停靠

  cameraStatus = CameraStatus.CreatCameraStatus();
  cameraStatus.Show(dockPanel1);
  cameraStatus.DockTo(dockPanel1, DockStyle.Bottom);

--------------------------------------------------------------------------------------------------------

dockpanel使用过程中遇到的问题:

界面加载的时候会有明显的闪烁,双缓存设置也没用

最后通过一个小技巧,在加载停靠窗体前设置为隐藏dockPanel1.Visible = false;

然后在停靠窗体加载的最后的地方再显示dockPanel1.Visible = true;也算是达到想要的效果了