Skip to main content
All docs
V26.1
  • 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);