private void ArrangeContainedElements()
        {
            ContainerElement parentEleme = this;

            //order the unorderdelements by zorder
            //and start building the tree by pluggin each element under it
            foreach (var elem in unorderdelements.OrderByDescending(x => x.ZOrder))
            {
                parentEleme.AddContainedElement(elem);
                if (elem is ContainerElement)
                {
                    parentEleme = (ContainerElement)elem;
                }
            }
        }