2015-01-19 4 views
2

В одном из моих проектов используется док-панельный набор WeiFen Luo http://dockpanelsuite.com/. Теперь клиент требует, чтобы вкладки отсортировались в заданном порядке, когда в представлении «Документ».DockPanel Suite tab сортировка

Вкладки - это все экземпляры одного и того же класса, полученного от DockContent. Он несет поплавок для сортировки.

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

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

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

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

ответ

0

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

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

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

Так двигаться Document1 и документ2, вы можете использовать

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); 

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

+0

Я вижу. Я немного смутился об использовании Panel vs Pane. Но с экземпляром Pane я получил его, чтобы он работал так, как он должен: 'dockContentInstance.Show (panelInstance.ActiveDocumentPane, neighbouringDockContentInstance);' для сортировки экземпляра DockContent рядом с другим. – luker

Смежные вопросы