SandDock is our award-winning window management software that enables dockable floating windows, tabbed documents and other advanced window management functionality in applications that use it. We have ported this technology to the Silverlight platform to bring web developers flexible window management features for their online software. The product is designed to offer the power and flexibility of the Visual Studio 2008 and Expression Blend windowing systems.
By plugging SandDock into your project you can forget about the intricacies of window layout; instead, provide your windows to SandDock and let it present them with all the tools your users need for full customization of the working area. Tool windows become dockable, sticking to the sides of your window in hierarchies chosen visually by the user; or they can be floated above your main window, or even collapsed to the side. Documents are presented in a tabbed fashion, with split views for easy comparison between content.
Silverlight contains no window management functionality of its own. Written entirely on the Silverlight platform, SandDock is able to offer all these features with extras like smooth animated transitions and effects. When interactively dragging windows around to redock them, dynamic docking hints fade in and out to help guide the window placement. If you don't want to use a full layout you can use the floating window functionality on its own, including modal window support.
Developers integrating SandDock into their pages can use styles and templates to customize (or completely change) the look and feel of the product. Our runtime API is very straightforward and creating a complex window layout through code couldn't be easier. Alternatively, XAML makes configuring a SandDock layout at design-time a breeze. You can persist window layout from one session to another using layout serialization; this can also be used to split your application into multiple view states. Docking rules allow you to restrict where the user is able to place your windows. Events are raised so your application can be constantly notified of changes to window positions and activation.
SandDock supports virtually all the window management capabilities of Microsoft Visual Studio 2008. It presents these features in a developer-friendly package which means these advanced capabilities can be integrated into your application in minutes. If you cannot see a feature explained here, please try the evaluation version or contact us to ask us about it.
All features summarised here are explained in greater detail further down the page.
Features in Depth:
Windows are dockable within the main container. The user can drag them to any side of the container to create complex groupings of windows, arranged in the most logical fashion for the task at hand. Hierarchies of arbitrary complexity can be created, and once windows are docked together they can be resized independently with the splitters between them. As a developer you can control which sides of the container the window can be docked to - or whether the window can be docked at all.
When multiple windows are docked into the same group, tabs appear for navigation between them. Dragging by the titlebar moves the whole group, dragging by the tab moves the individual window. Standard keyboard shortcuts work to allow keyboard navigation between tabs.
When a window is dragged from its location to a space in the container not recognised as another dock location, the window can be floated. Intuitive docking hints guide the user while a docking operation is in progress, making it easy to see where their window will end up. Multiple windows can be housed together in the same floating group. The developer has full control over whether a window is allowed to be floated.
When a window is docked, it can be "unpinned", where it collapses down to a small tab representation of itself at the side of your container. The user can still access the window by clicking its tab or using a keyboard shortcut, but the window is not always present on screen. When accessed, the window pops up using smooth animation and is present until the user is done with it, whereupon it collapses down again.
The transition effects when a collapsed window pops up and subsequently disappears can be set by the developer.
If your application is document-oriented you will likely want to take advantage of the tabbed document interface (TDI) support in SandDock. As with any SandDock windows, you can simply let the software take care of all layout, leaving your application to implement its core logic. Tabbed document navigation is more than just tabs - the layout engine allows users to split documents into multiple panes with proportional resizing for easy comparisons between documents.
Of course, if you wish to allow it, your documents can also be "torn off" to become floating windows or docked to the sides of your container. Such potential functionality is shared between all SandDock windows.
A complete SandDock layout can be a complex thing. A combination of tool windows; some docked, some floating, some collapsed; and tabbed documents, all potentially arranged into hierarchies. This is great for the user, but they will expect their layout to be persisted from one application session to the next. This is very easy to achieve. We provide a method that serializes the entire layout as a string containing XML, that can be persisted to the storage medium of your choice and restored upon the next application load. You can also choose to save layout state directly into isolated storage.
NEW: Full designer integration with Visual Studio 2010 RC1.
NEW: Perspective transform introduced for popup window animation; is now the default.
NEW: LayoutSerialization.GuidString attached property added to work around Silverlight being unable to specify Guid literals in XAML.
CHANGE: Minimum Silverlight platform is now 3.0.