DockPanel Suite 选项卡排序

DockPanel Suite tab sorting

我的一个项目使用了 WeiFen Luo 的 DockPanel Suite http://dockpanelsuite.com/。现在,客户要求在文档视图中按给定顺序对选项卡进行排序。

这些选项卡都是同一个 DockContent 派生的实例 class。它带有一个用于排序的浮点数。

DockPanel.Contents 是一个 DockContentCollection,遗憾的是它不像其他集合那样提供 Sort 方法。也无法从中删除 DockContents 以便以正确的顺序添加它们。

但是用户可以将一个选项卡拖放到另一个选项卡上以更改他们的顺序。

有谁知道如何以编程方式"insert tab1 in tab2's place"做到这一点?

我知道我应该在依赖图书馆的论坛上提问,那里的 "how to ask a question" 条目指向这里。

如果深入研究示例项目的 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);

你明白了吗?就是简单的堆叠,完全可以控制顺序。