AvalonDock:以编程方式取消对DocumentPan的DocumentContents

时间:2012-05-29 05:00:02

标签: wpf avalondock

您好我想知道我是否可以通过编程方式解除DocumentContent DocumentPan的所有问题。

任何建议?

谢谢。

2 个答案:

答案 0 :(得分: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。 对我来说似乎没问题;)

答案 1 :(得分:1)

void undockAll(LayoutDocumentPane pane)
{
    while(pane.Children.Count > 0)
       pane.Children[0].Float();
}