
In addition to better Interop support we previous described, we've added the ability to link DockSites in our Docking & MDI for WPF product.
Background
A DockSite is the main entity or object when working with our Docking & MDI for WPF product. It manages all the defined document and tool windows, and all the possible containers. This includes the Workspace and associated MDI host, if any.
In previous builds, a document/tool window being dragged with the mouse could only be docked inside it's own DockSite (or floated). If multiple DockSites were used in an application, each was it's own little island. Document/Tool windows could be moved between DockSites programmatically by unregistering it from the current DockSite, then registering it and opening it in the new DockSite. But this approach wasn't as intuitive as dragging and dropping it to the new DockSite.
Linking DockSites
One or more DockSites can now be linked together, which allows their document/tool windows to be dragged and dropped between them. To link two DockSites, you must call the new DockSite.LinkDockSite method, passing the DockSite that should be linked:
1: this.dockSite1.LinkDockSite(this.dockSite2);
This establishes a link from dockSite1 to dockSite2, and from dockSite2 to dockSite 1. To break a link, you can call the new DockSite.UnlinkDockSite method, again passing the associated DockSite:
1: this.dockSite1.UnlinkDockSite(this.dockSite2);
Just like with LinkDockSite, the link from dockSite1 to dockSite2 is removed, and vice versa.
NOTE: The links are established using weak references to ensure that it does not retain any DockSites that may have fallen out of scope, but it is good practice to unlink DockSites explicitly.
Once a link is established, you can freely move document and tool windows between the linked DockSites.
Configuration Options
We've added new configuration options to control exactly which document and/or tool windows are allowed to be dragged between linked DockSites. The DockSite.CanDocumentWindowsDragToLinkedDockSites and DockSite.CanToolWindowsDragToLinkedDockSites properties can be used to prevent all document and tool windows, respectively, from being moved. The DocumentWindow.CanDragToLinkedDockSites and ToolWindow.CanDragToLinkedDockSites properties give you finer control and allow you to override the global settings on the DockSite.
This allows you to say that only document windows should be allowed to be dragged to a linked DockSite, or maybe only a select few tool windows.
Example
In these series of screen shots, you can see that we drag a document window from the DockSite in the main window to a linked DockSite in the child window. We get all the fancy dock guides and previews that you'd expect.



Summary
This is a great new feature with lots of potential applications, especially in multi-monitor setups. Look for this and other great features in our next maintenance release.