|
|
|
@ -604,7 +604,9 @@ namespace Avalonia.Controls |
|
|
|
return new Size(); |
|
|
|
} |
|
|
|
|
|
|
|
var padding = Padding; |
|
|
|
var scale = LayoutHelper.GetLayoutScale(this); |
|
|
|
|
|
|
|
var padding = LayoutHelper.RoundLayoutThickness(Padding, scale, scale); |
|
|
|
|
|
|
|
_constraint = availableSize.Deflate(padding); |
|
|
|
|
|
|
|
@ -612,23 +614,24 @@ namespace Avalonia.Controls |
|
|
|
|
|
|
|
InvalidateArrange(); |
|
|
|
|
|
|
|
var measuredSize = PixelSize.FromSize(TextLayout.Bounds.Size, 1); |
|
|
|
var measuredSize = TextLayout.Bounds.Size.Inflate(padding); |
|
|
|
|
|
|
|
return new Size(measuredSize.Width, measuredSize.Height).Inflate(padding); |
|
|
|
return measuredSize; |
|
|
|
} |
|
|
|
|
|
|
|
protected override Size ArrangeOverride(Size finalSize) |
|
|
|
{ |
|
|
|
if(finalSize.Width < TextLayout.Bounds.Width) |
|
|
|
{ |
|
|
|
finalSize = finalSize.WithWidth(TextLayout.Bounds.Width); |
|
|
|
} |
|
|
|
|
|
|
|
if (MathUtilities.AreClose(_constraint.Width, finalSize.Width)) |
|
|
|
{ |
|
|
|
return finalSize; |
|
|
|
} |
|
|
|
|
|
|
|
var padding = Padding; |
|
|
|
|
|
|
|
var textSize = PixelSize.FromSize(finalSize.Deflate(padding), VisualRoot?.RenderScaling ?? 1); |
|
|
|
|
|
|
|
_constraint = new Size(textSize.Width, textSize.Height); |
|
|
|
_constraint = new Size(finalSize.Width, double.PositiveInfinity); |
|
|
|
|
|
|
|
_textLayout = null; |
|
|
|
|
|
|
|
|