Для простой стыковки вы должны использовать DockPanel :
<DockPanel>
<Button DockPanel.Dock="Top">This would be a toolbar at the top</Button>
<Butto>This would the main work area</Button>
</DockPanel>
<DockPanel>
<Button DockPanel.Dock="Left">This would be a toolbar at the left</Button>
<Button>This would the main work area</Button>
</DockPanel>
Вместо кнопки вы, конечно, будете использовать классы, более подходящие для ваших нужд.
Однако, когда вам нужна система управления окнами с плавающими окнами, вам придется вернуться в стороннюю библиотеку, потому что в WPF ее нет, и вам будет довольно сложно свернуть свою собственную. Вот несколько библиотек:
Если все, что вам действительно нужно, это плавающая панель инструментов (и никаких других окон), вы можете использовать класс ToolBar в сочетании с классом ToolBarTray . Но вам нужно будет написать код для обнаружения перетаскивания, удалить элемент ToolBar из дерева визуалов, а затем добавить его в качестве корневого визуала в ваш собственный Window или HwndSource. Затем вам нужно будет определить, когда окно находится над зоной перетаскивания, чтобы переместить панель инструментов из окна в визуальное дерево главного окна и закрыть другое окно.