What's new in version 2.0
AvalonDock 2.0 has been rewritten from scratch using an MVVM approach. There is a deep separation between the Model (that describes how the layout is composed), the ViewModel (which prepares the model to be consumed by the view) and the View (a set of stylizable
controls that show the user controls).
We've put a lot of attention to WPF Logical/Visual tree management. There is one and only one logical tree which has DockingManager as root. Even if a control is placed in a different window (auto-hide or floating), it always belongs to the same logical
tree, below DockingManager.
Binding Issues fixed
Version 1.* suffered from of an annoying issue regarding binding that didn't work for flyout panes and floating windows. The problem here is that WPF's logical tree breaks when content is moved inside another window, such as when a user moves a pane
in a floating window.
Version 2.0 fixes this problem definitively. For a detailed description of the problem please read
MVVM support added
Using an MVVM approach with version 1.* was quite a challenge (you can find a great tutorial at
). Version 2.0 supports MVVM natively because you can create your model and using DockingManager as the view.
Flyout windows perfomance improved
In version 1.* when a user put content in autohide state, a new window was created by AvalonDock. The window's position and size had to be kept in sync with the docking manager. This lead to a performance issue due to a lot of framework interop calls. Version
2.0 uses the same mechanism as Visual Studio 2010, child windows with redirected logical trees, to show autohide windows. This provides increased perfomance and stability. For more info please see
Floating windows Aero Snap support added
Version 2.0 supports 'Aero Snap'. For details please see (http://blogs.msdn.com/b/visualstudio/archive/2009/11/05/tips-and-tricks-window-management-aero-snapping.aspx
Floating windows integrated docking
Version 2.0 lets users redock dockable content inside a floating window, similar to the feature in VS 2010.
Focus and activation
We're working to mitigate/eliminate all the focus/activation problems that caused a lot of headaches when using AvalonDock versions prior to v2.0. This work has not yet been completed. We are contemplating using this technique to accomplish that:
Version 2.0 layout serialization/deserialization is much easier because layout is now also a model completely separated from the view. This allows for easier integration with frameworks like PRISM/MEF.
WPF standard controls
Version 2.0 makes use of standard WPF control. For example, instead of creating a complex panel control, AvalonDock now uses standard grid panel. Using this approach reduced the number of classes to test and debug and the size of the resulting library.