public void Resize()
    {
        GetParentInfo();
        RectTransform rect = transform as RectTransform;

        if (DesignSize.x == 0)
        {
            DesignSize.x = 1;
        }
        if (DesignSize.y == 0)
        {
            DesignSize.y = 1;
        }
        ModelElement.Docking(rect, scaleType, psize, DesignSize);
        if (sizeType == SizeType.Anchor)
        {
            ModelElement.AnchorEx(rect, anchorType, new Vector2(margin.left, margin.right), pp, psize);
        }
        else if (sizeType == SizeType.Margin)
        {
            var mar = margin;
            if (parentType == ParentType.BangsScreen)
            {
                if (Scale.ScreenHeight / Scale.ScreenWidth > 2f)
                {
                    mar.top += 88;
                }
            }
            ModelElement.MarginEx(rect, mar, pp, psize);
        }
        else if (sizeType == SizeType.MarginRatio)
        {
            var mar = new Margin();
            mar.left  = margin.left * psize.x;
            mar.right = margin.right * psize.x;
            mar.top   = margin.top * psize.y;
            if (parentType == ParentType.BangsScreen)
            {
                if (Scale.ScreenHeight / Scale.ScreenWidth > 2f)
                {
                    mar.top += 88;
                }
            }
            mar.down = margin.down * psize.y;
            ModelElement.MarginEx(rect, mar, pp, psize);
        }
        for (int i = 0; i < transform.childCount; i++)
        {
            var ss = transform.GetChild(i).GetComponent <SizeScaleEx>();
            if (ss != null)
            {
                ss.Resize();
            }
        }
    }