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);
            }