When deserializing, if the SerializationBehavior is set to `All`, then any Direct content of the workspace will be lost.
My best guess would be that when the SerializationBehaviour is set to `All` that the current code deserializes and replaces the workspace, rather than deserializing its child (which should stil have the same functionality).
Obviously the workaround is to set the SerializationBehavior to `ToolWindowsOnly` when using direct content; however this is not practical when using a common DockSiteLayoutSerializer as recommended in the help:
...but also highly recommend that instead of creating a new layout serializer any time you do a layout serialization, you instead keep a reference to a single app-wide instance of the layout serializer and use that for each layout serialization.
My current workaround is to create an attached property that can be set on the DockSite to specify the SerializationBehavior and is read before serialization/deserialization.
[Modified 4 years ago]