diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutRoot.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutRoot.cs index d55bf630..023f7598 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutRoot.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock/Layout/LayoutRoot.cs @@ -792,21 +792,31 @@ namespace Xceed.Wpf.AvalonDock.Layout reader.Read(); } - while( true ) + bool done = false; + + while(!done) { - var result = ReadElement( reader ) as LayoutFloatingWindow; - if( result == null ) + var element = ReadElement(reader); + + switch (element) { - break; + case LayoutFloatingWindow w: + resultList.Add(element); + break; + case LayoutAnchorable a: + resultList.Add(element); + break; + default: + done = true; + break; } - - resultList.Add( result ); } reader.ReadEndElement(); return resultList; } + private object ReadElement( XmlReader reader ) { @@ -924,11 +934,13 @@ namespace Xceed.Wpf.AvalonDock.Layout writer.WriteEndElement(); } writer.WriteEndElement(); - - writer.WriteStartElement( "Hidden" ); - foreach( var layoutAnchorable in Hidden ) + + writer.WriteStartElement("Hiddens"); + foreach (var layoutAnchorable in Hidden) { - layoutAnchorable.WriteXml( writer ); + writer.WriteStartElement(layoutAnchorable.GetType().Name); + layoutAnchorable.WriteXml(writer); + writer.WriteEndElement(); } writer.WriteEndElement(); }