public static Desktop FromXmlElement(XmlElement element) { Platform.CheckTrue(element.Name == "desktop", "The settings xml is invalid."); TypeConverter converter = TypeDescriptor.GetConverter(typeof(Rectangle)); Rectangle virtualScreen = (Rectangle)converter.ConvertFromInvariantString(element.GetAttribute("virtual-screen")); Desktop desktop = new Desktop(virtualScreen); foreach (XmlElement screen in element["screens"].ChildNodes) { desktop._screens.Add(Screen.FromXmlElement(screen)); } foreach (XmlElement window in element["desktop-windows"].ChildNodes) { desktop._desktopWindows.Add(DesktopWindow.FromXmlElement(window)); } return(desktop); }