|Home Products Downloads Store Support Corporate|
SandDock Features in Depth
SandDock supports virtually all the window management capabilities of Microsoft Visual Studio 2008, plus many more. 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
Visual Studio 2008 shipped with a designer environment for WPF, codenamed "Cider". Shortly after its release we announced SandDock for WPF v1.2, containing full support for this design environment. Developers can now manipulate their dockable windows and tabbed documents at design time just like they can at runtime, with drag and drop. This greatly enhances productivity using the library and is a useful learning tool as you can see the impact of various layout changes on your XAML in real time.
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 on the desktop 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.
Floatable windows are a great way to allow your users to take advantage of multiple monitors, by moving selected tool windows to a secondary monitor.
When a window is docked inside a container, 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 and docked to the sides of your container. Such potential functionality is shared between all SandDock windows.
Multiple Document Interface
Windows Presentation Foundation does not provide an MDI implementation in the platform. SandDock addresses this with its own MDI implementation, virtually identical in behaviour to traditional Win32 MDI with some changes and advantages brought by the capabilities of the WPF platform. You can even allow your users to switch between MDI and TDI on the fly if you wish.
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.
Switching between windows using the keyboard is something users do constantly, and only recently has the user experience for this task started improving. We offer the standard switching behaviour from Visual Studio 2005, where all tool windows and documents are listed for easy Ctrl-Tab selection and activation. We have also been able to leverage the power of WPF to provide a 3D document switching experience very similar to the Flip-3D feature seen in Microsoft Windows Vista. We call this Tab-3D, and it works on any version of Windows supported by WPF.