Как создать закрепляемую вкладку, такую ​​как IE9 или Chrome

Я хочу реализовать интерфейс, похожий на IE9 или Chrome.

Мне нравится закрепляемая вкладка, ее можно перетащить в новое окно.

и окно также может быть введено в качестве вкладки.

Кто-нибудь может дать мне представление, как это реализовать, или библиотека, или пример?

благодарю вас.

AvalonDock очень хорош, но не совсем так, как я хотел.

3 ответа

Решение
Shell 
{
    List<Content> Contents
}
  1. Перетащите: используйте PopUp/adorn/visualbrush для создания эскиза контента.
  2. Drop: если из родительской оболочки создайте новую оболочку и добавьте перетаскиваемый контент в список содержимого. Извлеките его из исходной родительской оболочки.

В WPF нет встроенного элемента управления док-станцией (это чертовски стыдно). Вы можете взглянуть на Sofa Docking, библиотеку стыковки с открытым исходным кодом, основанную на AvalonDock.

Я использую контроль стыковки DevExpress (не бесплатно). Это не идеально, но их поддержка клиентов - одна из лучших, и это очень важно для меня. Мне было очень трудно найти какие-либо ресурсы и ответы, касающиеся AvalonDock и SofaDock.

Вы можете посмотреть на Infragistics xamDockManager: http://www.infragistics.com/dotnet/netadvantage/wpf/xamdockmanager.aspx

Если вы сделаете это, вы будете использовать 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

Другие вопросы по тегам