Получить дочерние панели панели в WeifenLuo 2.5.0.0

Я хочу создать несколько DockContent для своего окна во время выполнения. Также все содержимое должно быть видно пользователю одновременно. Я хочу добавить содержимое только в верхнюю и нижнюю стороны. Итак, как мне добавить содержимое, в котором все содержимое имеет почти одинаковый размер?

Проблема, с которой я сталкиваюсь сейчас, это размер каждого контента. Каждый раз, когда я добавляю контент, он становится все меньше и меньше, но предыдущее содержимое сохраняет свой размер. Это означает, что он просто разделяется каждый раз, когда один и тот же контент добавляет другой контент.

Чтобы решить эту проблему, я сначала пытаюсь проверить, содержит ли DockPanel DockPanel.Contents, где DockState — это DockState.Document. Если нет, я добавляю его в качестве первого контента. Если он существует, я хочу проверить дочерние панели содержимого, если есть та, которая закреплена сверху. Чтобы получить доступ к дочерним панелям, я пытаюсь использовать IDockContent.DockHandler.Pane.NestedPanesContainer.NestedPanes. К сожалению, похоже, что возвращаются не только дочерние элементы этой панели, но и все существующие панели.

Надеюсь, понятно, что я пытаюсь сделать.


person user1627310    schedule 27.08.2012    source источник


Ответы (1)


Я смог решить свою проблему. Для этого я использовал «Pane.NestedPanesContainer.NestedPanes», чтобы получить все элементы в дереве. А затем постройте дерево со свойством "Pane.NestedDockingStatus.PreviousPane", чтобы получить их родительские узлы. Это работает нормально, но каждый раз нужно рассчитывать. В моем случае это достаточно быстро.

Будьте осторожны, какие элементы содержит «NestedPanes». «DockPanel» может содержать более одного дерева. Свойство «DockContentHandler.DockState» определяет, в каком дереве он находится.

person user1627310    schedule 31.08.2012