我希望将停靠面板停靠在现有停靠面板上。
我目前的布局如下。窗口左侧是设置停靠面板。右边是另一个停靠面板。右侧停靠面板占据了大部分窗口。左侧停靠面板包含的项目在与(控件等)交互时会影响右侧停靠面板中显示的内容。
我需要动态添加新的左侧停靠面板。第一个应该停靠在设置停靠面板的底部。第二个应该停靠到第一个,依此类推。
我可以根据需要将第一个新的停靠面板停靠到设置停靠面板。任何后续停靠面板都不会停靠在前一个底部。相反,它们停靠在前一个的右侧,并强制#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);
答案 0 :(得分: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();
}