Skip to main content

Move Panels Between DockLayoutManager Instances

Run Demo: Dock Layout Manager - Drag Panels Between Dock Managers Demo

Use the Link(DockLayoutManager, DockLayoutManager) method to link two DockLayoutManager instances. The link allows you to drag and drop panels between DockLayoutManager instances within one application domain.

<dxdo:DockLayoutManager x:Name="dockLayoutManagerTop" DockPanel.Dock="Top" FloatingMode="Desktop">
    <!--...-->
</dxdo:DockLayoutManager>
<dxdo:DockLayoutManager x:Name="dockLayoutManagerBottom" DockPanel.Dock="Bottom" FloatingMode="Desktop">
    <!--...-->
</dxdo:DockLayoutManager>
DockLayoutManagerLinker.Link(dockLayoutManagerTop, dockLayoutManagerBottom);

DockLayoutManagerLinker Linked Instances Drag Drop

Note

The linked DockLayoutManager instances should have the same FloatingMode property value.

If you link several DockLayoutManager controls and save/restore the layout for them, item names within all these controls must be unique.

Limitation

You cannot drag DockLayoutManager panels between different applications/threads.

Use the DockLayoutManagerLinker.Unlink method to remove a link between two DockLayoutManager instances.

DockLayoutManagerLinker.Unlink(dockLayoutManagerTop, dockLayoutManagerBottom);

Link DockLayoutManager instances to drag and drop panels between these instances.

<dxdo:DockLayoutManager x:Name="dockLayoutManagerTop" DockPanel.Dock="Top" FloatingMode="Desktop">
    <!--...-->
</dxdo:DockLayoutManager>
<dxdo:DockLayoutManager x:Name="dockLayoutManagerBottom" DockPanel.Dock="Bottom" FloatingMode="Desktop">
    <!--...-->
</dxdo:DockLayoutManager>
<dxdo:DockLayoutManager x:Name="dockLayoutManagerRight" DockPanel.Dock="Right" FloatingMode="Desktop">
    <!--...-->
</dxdo:DockLayoutManager>
DockLayoutManagerLinker.Link(dockLayoutManagerTop, dockLayoutManagerBottom);
DockLayoutManagerLinker.Link(dockLayoutManagerTop, dockLayoutManagerRight);
DockLayoutManagerLinker.Link(dockLayoutManagerBottom, dockLayoutManagerRight);