如何创建像IE9或chrome这样的可停靠标签

时间:2012-01-14 15:01:22

标签: wpf tabpanel dockable

我想实现一个类似IE9或chrome的UI。

我喜欢可停靠的标签,可以将其拖到新窗口中。

并且窗口也可以作为标签放置。

有人可以给我一个如何实现它的想法,或者一个库,还是一个例子?

谢谢。

AvalonDock非常好,但不太像我想要的那样。

3 个答案:

答案 0 :(得分:1)

在WPF中没有开箱即用的停靠控件(这是一个该死的耻辱)。你可以看看Sofa Docking,这是一个基于AvalonDock的开源对接库。

我正在使用DevExpress'对接控件(不是免费的)。它并不完美,但他们的客户支持是最好的之一,这对我来说是一件非常重要的事情。我发现很难找到关于AvalonDock和SofaDock的任何资源和答案。

答案 1 :(得分:0)

您可以查看Infragistics xamDockManager: http://www.infragistics.com/dotnet/netadvantage/wpf/xamdockmanager.aspx#Overview

如果这样做,您将使用DocumentContentHost: http://help.infragistics.com/NetAdvantage/WPF/Current/CLR4.0/?page=xamDockManager_Add_Panes_to_the_DocumentContentHost_Object.html

然后你想要在右侧,左侧,顶部和底部禁用ContentPanes的对接,并且有一个布尔属性可以设置为像AllowDockingLeft一样控制它: http://help.infragistics.com/NetAdvantage/WPF/Current/CLR4.0/?page=InfragisticsWPF4.DockManager.v11.2~Infragistics.Windows.DockManager.ContentPane~AllowDockingLeft.html

答案 2 :(得分:0)

Shell 
{
    List<Content> Contents
}
  1. 拖动:使用PopUp / adorn / visualbrush创建内容缩略图。
  2. Drop:如果超出父shell,则创建一个新shell,然后添加 将内容拖动到内容列表。从原始父项中删除它 壳。