Hi Arthur,
I'm not exactly sure what you mean by "load the default settings defined in the window". When deserializing a DockSite, we effectively have two layouts: the current one and the one you are loading from XML. I'm assuming you want to keep open any ToolWindows that are "new" in your application from a previous release. This is something you'd have to explicitly handle in your application.
Trying to merge the two layouts can be very difficult, as each of the layouts can be a complex heirarchy. If you currently have 3 ToolWindows stacked verticaly and load a layout were two of those windows are stacked horizontally, how would you expect the layout to look? Some people may want the 3rd ToolWindow on the top, and the other 2 stacked horizontally on the bottom. Others may want it the other way around, and others may even want the 3rd ToolWindow to be closed. This is actually just one simple example, there are much more complex scenarios.
You can inject custom data into the XML file and read that information back when deserializing. Using this mechanism, you can save a "layout version" so you will know if you are loading an older version of your file. If loading an older version, you can programmatically dock the new ToolWindows where you feel they best fit. Or you could choose to discard the old layout and run with the layout defined in your XAML.
I don't believe the Docking & MDI product has an example of how custom data can be injected, but the Navigation Save/Load Layout QuickStart does show an example. The concept is the same for the DockSite.