     }
 
     //----------------------------------
+    //  minHeight
+    //----------------------------------
+    
+    /**
+     *  @private
+     *
+     *  The minimum height explicitly set by the user.
+     */
+    private var _explicitMinHeight:Number = NaN;
+    
+    /**
+     *  @private
+     */
+    public function get minHeight():Number
+    {
+        if (!isNaN(_explicitMinHeight))
+            return _explicitMinHeight;
+        return resizeMode == ResizeMode.SCALE ? 0 : preferredHeight;
+    }
+    
+    /**
+     *  @private
+     */
+    public function set minHeight(value:Number):void
+    {
+        if (_explicitMinHeight == value)
+            return;
+        _explicitMinHeight = value;
+        invalidateParentSizeAndDisplayList();
+    }
+    
+    //----------------------------------
+    //  maxHeight
+    //----------------------------------
+    
+    /**
+     *  @private
+     *
+     *  The maximum height explicitly set by the user.
+     */
+    private var _explicitMaxHeight:Number = NaN;
+    
+    /**
+     *  @private
+     */
+    public function get maxHeight():Number
+    {
+        if (!isNaN(_explicitMaxHeight))
+            return _explicitMaxHeight;
+        return DEFAULT_MAX_HEIGHT;
+    }
+    
+    /**
+     *  @private
+     */
+    public function set maxHeight(value:Number):void
+    {
+        if (_explicitMaxHeight == value)
+            return;
+        _explicitMaxHeight = value;
+        invalidateParentSizeAndDisplayList();
+    }
+    
+    //----------------------------------
     //  horizontalCenter
     //----------------------------------
 

     */
    public function getMaxBoundsHeight(postLayoutTransform:Boolean = true):Number
    {
        return transformHeightForLayout(DEFAULT_MAX_WIDTH, DEFAULT_MAX_HEIGHT, postLayoutTransform);
    }

    /**

     */
    public function getMaxBoundsWidth(postLayoutTransform:Boolean = true):Number
    {
        return transformWidthForLayout(maxWidth, maxHeight, postLayoutTransform);
    }

    /**
