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