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

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

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

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

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

1 ответ

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

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

Другие вопросы по тегам