2

我希望将停靠面板停靠到现有的停靠面板。

我目前的布局如下。窗口左侧是设置停靠面板。右侧是另一个停靠面板。右侧停靠面板占据了大部分窗口。左侧停靠面板包含的项目在与(控件等)交互时会影响右侧停靠面板中看到的内容。

我需要动态添加新的左侧停靠面板。第一个应该停靠在设置停靠面板的底部。第二个应该停靠到第一个,依此类推。

我可以根据需要让第一个新的停靠面板停靠到设置停靠面板。任何后续的停靠面板都不会停靠在前一个面板的底部。相反,它们停靠在前一个的右侧并强制 #1 进入一列。这是我的代码:

       // Add a new dock panel
        DockPanel dockPanel = dockManager1.AddPanel(DockingStyle.Top);

        // Dock the panel to the previous panel
        if (mLeftSidePanels.Count == 0)
            dockPanel.DockTo(dockPanelSettings);
        else
            dockPanel.DockTo(mLeftSidePanels[mLeftSidePanels.Count - 1].DockPanel);

        // Add the left side dock panel to our collection
        mLeftSidePanels.Add(dockpanel);
4

1 回答 1

2

请尝试以下方法:

IList<DockPanel> mLeftSidePanels = new List<DockPanel>();
//...
void addNewPanelButton_Click(object sender, EventArgs e) {
    dockManager1.BeginUpdate();

    DockPanel dockPanel = dockManager1.AddPanel(DockingStyle.Top);
    // Dock the panel to the previous panel
    if(mLeftSidePanels.Count == 0)
        dockPanel.DockTo(dockPanelSettings);
    else {
        // add to parent split container
        dockPanel.DockTo(dockPanelSettings.ParentPanel);
    }
    mLeftSidePanels.Add(dockPanel);

    dockManager1.EndUpdate();
}
于 2013-01-28T07:40:03.873 回答