@@ -995,8 +995,13 @@ protected override Size MeasureOverride(Size availableSize)
995995 {
996996 var sizeToContent = SizeToContent ;
997997 var clientSize = ClientSize ;
998- var constraint = clientSize ;
999998 var maxAutoSize = PlatformImpl ? . MaxAutoSizeHint ?? Size . Infinity ;
999+ var useAutoWidth = sizeToContent . HasAllFlags ( SizeToContent . Width ) ;
1000+ var useAutoHeight = sizeToContent . HasAllFlags ( SizeToContent . Height ) ;
1001+
1002+ var constraint = new Size (
1003+ useAutoWidth || double . IsInfinity ( availableSize . Width ) ? clientSize . Width : availableSize . Width ,
1004+ useAutoHeight || double . IsInfinity ( availableSize . Height ) ? clientSize . Height : availableSize . Height ) ;
10001005
10011006 if ( MaxWidth > 0 && MaxWidth < maxAutoSize . Width )
10021007 {
@@ -1007,19 +1012,19 @@ protected override Size MeasureOverride(Size availableSize)
10071012 maxAutoSize = maxAutoSize . WithHeight ( MaxHeight ) ;
10081013 }
10091014
1010- if ( sizeToContent . HasAllFlags ( SizeToContent . Width ) )
1015+ if ( useAutoWidth )
10111016 {
10121017 constraint = constraint . WithWidth ( maxAutoSize . Width ) ;
10131018 }
10141019
1015- if ( sizeToContent . HasAllFlags ( SizeToContent . Height ) )
1020+ if ( useAutoHeight )
10161021 {
10171022 constraint = constraint . WithHeight ( maxAutoSize . Height ) ;
10181023 }
10191024
10201025 var result = base . MeasureOverride ( constraint ) ;
10211026
1022- if ( ! sizeToContent . HasAllFlags ( SizeToContent . Width ) )
1027+ if ( ! useAutoWidth )
10231028 {
10241029 if ( ! double . IsInfinity ( availableSize . Width ) )
10251030 {
@@ -1031,7 +1036,7 @@ protected override Size MeasureOverride(Size availableSize)
10311036 }
10321037 }
10331038
1034- if ( ! sizeToContent . HasAllFlags ( SizeToContent . Height ) )
1039+ if ( ! useAutoHeight )
10351040 {
10361041 if ( ! double . IsInfinity ( availableSize . Height ) )
10371042 {
0 commit comments