public static DesktopWindow FromXmlElement(XmlElement element) { Platform.CheckTrue(element.Name == "desktop-window", "The settings xml is invalid."); string name = element.GetAttribute("name"); TypeConverter converter = TypeDescriptor.GetConverter(typeof(Rectangle)); Rectangle restoreBounds = (Rectangle)converter.ConvertFromInvariantString(element.GetAttribute("bounds")); converter = TypeDescriptor.GetConverter(typeof(FormWindowState)); FormWindowState restoreState = (FormWindowState)converter.ConvertFromInvariantString(element.GetAttribute("state")); DesktopWindow window = new DesktopWindow(name); window.Bounds = restoreBounds; window.State = restoreState; foreach (XmlElement shelf in element["shelves"].ChildNodes) { window._shelves.Add(Shelf.FromXmlElement(shelf)); } return(window); }