在WeifenLuo 2.5.0.0中获取面板的子面板

时间:2012-08-27 10:23:29

标签: c# .net winforms dockpanel-suite

我想在运行时创建几个DockContent到我的窗口。此外,所有内容应该对用户同时可见。我只想在顶部和底部添加内容。那么如何添加所有内容几乎相同的内容呢?

我现在遇到的问题是每个内容的大小。每次添加内容时,它都会越来越小,但之前的内容会保持不变。这意味着它只是在每次相同的内容时分割以添加其他内容。

要解决这个问题,我首先要检查DockPanel是否包含一个DockPanel.Contents,其中DockState是DockState.Document。如果不是,我将其添加为第一个内容。如果它存在,我想检查内容子窗格,如果有一个停靠在顶部。要访问子窗格,我使用IDockContent.DockHandler.Pane.NestedPanesContainer.NestedPanes进行尝试。不幸的是,这似乎并不仅仅返回此窗格的子项,而是返回所有现有窗格。

我希望我能做的很清楚。

1 个答案:

答案 0 :(得分:0)

我能够解决我的问题。为此我使用了“Pane.NestedPanesContainer.NestedPanes”来获取树中的所有元素。然后使用属性“Pane.NestedDockingStatus.PreviousPane”构建树以获取其父节点。这很好,但每次都需要计算。就我而言,它足够快。

小心“NestedPanes”包含哪些元素。 “DockPanel”可以包含多个树。属性“DockContentHandler.DockState”确定它在哪个树中。