FloatDimension GetItemContentSize(bool horizontalMode, bool verticalMode) const
{
- return __pControl->GetControlDelegate().GetContentSizeF(horizontalMode, verticalMode);
+ FloatRectangle rect = __pControl->GetContentAreaBoundsF();
+ if (rect == FloatRectangle(0.0f, 0.0f, 0.0f, 0.0f))
+ {
+ return __pControl->GetControlDelegate().GetContentSizeF(horizontalMode, verticalMode);
+ }
+ else
+ {
+ return FloatDimension(rect.width, rect.height);
+ }
}
FloatDimension GetItemMinimumSize(void) const
bool widthWrapContent = widthMatchMode == _Layout::WRAP_CONTENT;
bool heightWrapContent = heightMatchMode == _Layout::WRAP_CONTENT;
- FloatDimension contentSize = GetContentSizeF(widthWrapContent, heightWrapContent);
- return FloatRectangle(__bounds.x, __bounds.y, contentSize.width, contentSize.height);
+ if (widthWrapContent || heightWrapContent)
+ {
+ FloatDimension contentSize = GetContentSizeF(widthWrapContent, heightWrapContent);
+ return FloatRectangle(__bounds.x, __bounds.y, contentSize.width, contentSize.height);
+ }
+ else
+ {
+ return __contentAreaBounds;
+ }
}
}
}