【问题标题】:DockPanel Suite tab sortingDockPanel Suite 选项卡排序
【发布时间】:2015-01-19 09:18:40
【问题描述】:

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

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

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

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

有谁知道如何以编程方式“将 tab1 插入 tab2 的位置”?

我知道我应该在依赖库的论坛上提问,那里的“如何提问”条目指向此处。

【问题讨论】:

    标签: .net dockpanel-suite


    【解决方案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);
    

    你明白了吗?它只是一个堆栈,您可以完全控制顺序。

    【讨论】:

    • 我明白了。我对 Panel vs Pane 的用法有点困惑。但是对于 Pane 实例,我让它按应有的方式工作:dockContentInstance.Show(panelInstance.ActiveDocumentPane, neighbouringDockContentInstance); 将 DockContent 实例排序到另一个实例旁边。
    猜你喜欢
    • 2011-01-30
    • 2011-04-02
    • 2011-05-25
    • 2012-01-30
    • 2016-05-28
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多