public static IWidget ParseXml(XmlReader reader, Widget parent = null) { reader.Read(); IWidget child = null; switch (reader.Name) { case "Panel": child = Panel.Create(reader, parent); break; case "ScrollView": child = ScrollView.Create(reader, parent); break; case "Label": child = Label.Create(reader, parent); break; case "Button": child = Button.Create(reader, parent); break; case "ProgressBar": child = ProgressBar.Create(reader, parent); break; case "Argument": reader.Read(); parent.AddParameter(reader.ReadContentAsString()); break; default: parent.ReadElement(reader); break; } if (child == null) { return(null); } if (parent != null) { if (parent.Root == null) { child.Root = parent; } else { child.Root = parent.Root; } if (parent is IWidgetContainer) { (parent as IWidgetContainer).AddChild(child); } } return(child); }