1

我正在使用DockPanel Suite,但由于文档相对稀疏,我遇到了问题。

我有两个停靠面板:一个停靠在左侧和右侧,称为“Side”,另一个停靠在底部,称为“Bottom”。我希望 Side 填充表格的高度,Bottom 填充其余部分。

所以我的目标是: 侧码头填充

但我所拥有的是: 底部码头填充

当我运行程序时,我得到了第二个变体,如果我将 Bottom 拖出使其浮动,然后将其拖回,它将按照我想要的方式停靠,但我无法以编程方式实现这一点。

这是我的代码:

public Form1()
{
    InitializeComponent();

    SideForm side = new SideForm();
    side.Show(dockPanel, DockState.DockRight);

    BottomForm bottom = new BottomForm();
    bottom.Show(dockPanel, DockState.DockBottom);
}

我试过改变顺序,但没有效果。我尝试过各种属性和方法,但没有太多文档,因此 IntelliSense 在这里没有太大帮助。

更新

我已经尝试按照两个人的建议将侧面板放在前面和/或将底部面板放在后面,但这没有效果。这是完整的代码:

public Form1()
{
    InitializeComponent();

    SideForm side = new SideForm();
    side.Show(dockPanel, DockState.DockRight);

    BottomForm bottom = new BottomForm();
    bottom.Show(dockPanel, DockState.DockBottom);

    // I've tried enabling these one at a time, and even both at once, no effect
    side.BringToFront();
    bottom.SendToBack();
}

用户 Lex Li 提出了另一个建议,即首先创建一个文档,然后停靠在该文档的底部。这似乎有效,除了现在底部窗口中没有,如下所示:

没有标题栏

这是我用来创建它的代码:

doc = new Document();
doc.Show(dockPanel, DockState.Document);

side = new SideForm();
side.Show(dockPanel, DockState.DockRight);

bottom = new BottomForm();
bottom.Show(doc.Pane, DockAlignment.Bottom, 0.3);

我可以通过将主停靠面板的DocumentStyle属性设置为DockingMdior来避免这种情况DockingWindow,这给了我这个:

标签

但是那些标签在那里,我不想要;我更喜欢使用DockingSdi风格。

所以,我正在尝试以编程方式实现停靠到最底部,如下所示:显示停靠点的位置...... 开始停靠

最后,停靠的窗口 停靠

4

2 回答 2

3

仅作记录:要更改停靠优先级,您需要自定义 DockWindow 的 Z 顺序。放置这个:

dockPanel.UpdateDockWindowZOrder(DockStyle.Right, true);

在 InitializeComponent() 和子窗体的创建/停靠之间。

于 2016-09-14T13:30:33.393 回答
0

您是否尝试过 Control.BringToFrom() 和\或 control.SendToBack()?

SideForm side = new SideForm();
side.Show(dockPanel, DockState.DockRight);

BottomForm bottom = new BottomForm();
bottom.Show(dockPanel, DockState.DockBottom);

side.BringToFrom();

或者

bottom.SendToBack();
于 2015-02-24T05:03:17.587 回答