Сортировка вкладок DockPanel Suite

Один из моих проектов использует DockPanel Suite WeiFen Luo http://dockpanelsuite.com/. Теперь клиент требует, чтобы вкладки были отсортированы в заданном порядке в режиме просмотра документов.

Все вкладки являются экземплярами одного и того же производного от DockContent класса. Он несет в себе поплавок для сортировки.

DockPanel.Contents - это коллекция DockContentCollection, которая, к сожалению, не предоставляет метод Sort, как другие коллекции. Также невозможно удалить DockContents из него, чтобы добавить их в правильном порядке.

Но пользователь может перетащить вкладку на другую, чтобы изменить их порядок.

Кто-нибудь знает, как сделать это "вставить tab1 вместо tab2" программно?

Я знаю, что должен спросить на библиотечно-зависимом форуме, здесь приведена запись "как задать вопрос".

1 ответ

Решение

Если вы копаете в примере проекта MainForm.menuItemLayoutByCode_Click Метод, вы можете увидеть, как управлять макетом с помощью кода C#.

doc1.Show(dockPanel, DockState.Document);
doc2.Show(doc1.Pane, null);
doc3.Show(doc1.Pane, null);
doc4.Show(doc1.Pane, null);

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

Таким образом, чтобы переместить Document1 и Document2, вы можете использовать

doc1.Show(dockPanel, DockState.Document);
doc2.Show(doc1.Pane, null);
doc3.Show(doc1.Pane, null);
doc4.Show(doc1.Pane, null);
doc1.Show(doc1.Pane, null);
doc2.Show(doc1.Pane, null);

Ты понял? Это просто стек, и вы можете полностью контролировать порядок.

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