Сортировка вкладок 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);
Ты понял? Это просто стек, и вы можете полностью контролировать порядок.