3

嗨,我想知道我是否可以以编程方式取消所有DocumentContents 。DocumentPan

有什么建议么?

谢谢你。

4

2 回答 2

3

我在这个问题上花了几个小时并找到了以下解决方案。我下载了avalon的源代码并进行了修改。我做了两个修改。DocumentPane 类中的第一个:

public void UnDock(DockableContent content)
    {
        DockingManager manager = GetManager();
        Point point = this.PointToScreenDPI(new Point(0, 0));
        manager.Drag(content, point, new Point(0, 0));
        manager.CompleteDragging(point);
    }

第二,我将 CompleteDragging 方法的可见性从私有扩展到内部。

UnDock 的使用非常简单:

dockumentPane1.UnDock(dockablePane1.Items[0] as DockableContent);

当然 DocumentPane 应该包含一些 DockableContent,它应该是 DockableContent 而不是 DocumentContent。对我来说似乎工作正常;)

于 2013-02-20T07:14:22.890 回答
1
void undockAll(LayoutDocumentPane pane)
{
    while(pane.Children.Count > 0)
       pane.Children[0].Float();
}
于 2015-09-27T13:35:14.350 回答