//public static void ArrangeLayersBackgroundItemClick(Layerage layerage)
        //{
        //    bool hasParentsSelected = LayerManager._getLayersParentsIsSelected(layerage);
        //    if (hasParentsSelected) return;
        //    else LayerManager._arrangeLayersBackgroundNullParents(layerage);
        //}

        // Judge Recursive
        private static void ArrangeLayersBackgroundCore(Layerage layerage)
        {
            ILayer layer = layerage.Self;

            if (layer.IsSelected)
            {
                layer.Control.BackgroundMode = BackgroundMode.Selected;
                foreach (Layerage child in layerage.Children)
                {
                    LayerManager.ArrangeLayersBackgroundHasParentsSelectedCore(child);
                }
            }
            else
            {
                bool childrenIsSelected = LayerManager.GetLayersChildrenIsSelectedCore(layerage);
                if (childrenIsSelected)
                {
                    LayerManager.ArrangeLayersBackgroundWithoutParentsSelectedCore(layerage);
                }
                else
                {
                    LayerManager.ArrangeLayersBackgroundIsNotSelectedCore(layerage);
                }
            }
        }
        // Self Recursive
        private static void ArrangeLayersBackgroundHasParentsSelectedCore(Layerage layerage)
        {
            ILayer layer = layerage.Self;

            layer.Control.BackgroundMode = BackgroundMode.ParentsSelected;

            foreach (Layerage child in layerage.Children)
            {
                LayerManager.ArrangeLayersBackgroundHasParentsSelectedCore(child);
            }
        }