停靠面板的 DevExpress 动态停靠
Posted
技术标签:
【中文标题】停靠面板的 DevExpress 动态停靠【英文标题】:DevExpress dynamic docking of dock panels 【发布时间】:2013-01-28 05:09:02 【问题描述】:我希望将停靠面板停靠到现有停靠面板。
我目前的布局如下。窗口左侧是设置停靠面板。右侧是另一个停靠面板。右侧停靠面板占据了大部分窗口。左侧停靠面板包含的项目在与(控件等)交互时会影响右侧停靠面板中看到的内容。
我需要动态添加新的左侧停靠面板。第一个应该停靠在设置停靠面板的底部。第二个应该停靠到第一个,依此类推。
我可以根据需要让第一个新的停靠面板停靠到设置停靠面板。任何后续的停靠面板都不会停靠在前一个面板的底部。相反,它们停靠在前一个的右侧并强制 #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);
【问题讨论】:
添加你想做什么的线框图。我无法判断你在做什么.. MSPaint! i.imgur.com/t6Ghk3T.png 【参考方案1】:请尝试以下方法:
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();
【讨论】:
以上是关于停靠面板的 DevExpress 动态停靠的主要内容,如果未能解决你的问题,请参考以下文章