/// <summary>
        /// 从布局信息构造节点
        /// </summary>
        /// <param name="node"></param>
        /// <param name="windowList"></param>
        /// <param name="onWindowClose"></param>
        public virtual void CreateFromLayoutCfg(XmlElement node, List <SubWindow> windowList,
                                                System.Action <SubWindow> onWindowClose)
        {
            string weightStr     = node.GetAttribute("Weight");
            string depthStr      = node.GetAttribute("Depth");
            string horizontalStr = node.GetAttribute("Horizontal");

            weight       = float.Parse(weightStr);
            depth        = int.Parse(depthStr);
            isHorizontal = bool.Parse(horizontalStr);
            XmlNodeList nodes = node.ChildNodes;

            if (nodes.Count == 0)
            {
                return;
            }
            XmlElement[] sortnode = new XmlElement[nodes.Count];
            foreach (var n in nodes)
            {
                XmlElement nd       = (XmlElement)n;
                string     indexstr = nd.GetAttribute("Index");
                int        index    = int.Parse(indexstr);
                sortnode[index] = nd;
            }
            foreach (var n in sortnode)
            {
                if (n.Name == "SubWindowNode")
                {
                    SubWindowNode swnode = new SubWindowNode(true, 0);
                    swnode.CreateFromLayoutCfg(n, windowList, onWindowClose);
                    this.m_Childs.Add(swnode);
                }
                else if (n.Name == "SubWindowLeaf")
                {
                    SubWindowLeaf swleaf = new SubWindowLeaf(null, true, 0);
                    swleaf.CreateFromLayoutCfg(n, windowList, onWindowClose);
                    this.m_Childs.Add(swleaf);
                }
            }
        }
        /// <summary>
        /// 添加子窗口
        /// </summary>
        /// <param name="window"></param>
        /// <param name="index"></param>
        public virtual void AddWindow(SubWindow window, int index)
        {
            SubWindowLeaf item = new SubWindowLeaf(window, !isHorizontal, depth + 1);

            this.Insert(item, index);
        }