Browse Source

Add arrange fix for border and content presenter.

pull/1497/head
Dan Walmsley 9 years ago
parent
commit
a98d289af8
  1. 3
      src/Avalonia.Controls/Border.cs
  2. 4
      src/Avalonia.Controls/Presenters/ContentPresenter.cs

3
src/Avalonia.Controls/Border.cs

@ -111,7 +111,8 @@ namespace Avalonia.Controls
if (Child != null)
{
var padding = Padding + BorderThickness;
Child.Arrange(new Rect(finalSize).Deflate(padding));
var arrangeRect = new Rect(finalSize).Deflate(padding);
Child.Arrange(new Rect(arrangeRect.X, arrangeRect.Y, Math.Max(0, arrangeRect.Width), Math.Max(0, arrangeRect.Height)));
}
_borderRenderHelper.Update(finalSize, BorderThickness, CornerRadius);

4
src/Avalonia.Controls/Presenters/ContentPresenter.cs

@ -386,7 +386,7 @@ namespace Avalonia.Controls.Presenters
if (verticalContentAlignment != VerticalAlignment.Stretch)
{
size = size.WithHeight(Math.Min(size.Height, DesiredSize.Height - padding.Top - padding.Bottom));
size = size.WithHeight(Math.Min(size.Height, DesiredSize.Height - padding.Top - padding.Bottom));
}
if (useLayoutRounding)
@ -425,7 +425,7 @@ namespace Avalonia.Controls.Presenters
originY = Math.Floor(originY * scale) / scale;
}
Child.Arrange(new Rect(originX, originY, size.Width, size.Height));
Child.Arrange(new Rect(originX, originY, Math.Max(0, size.Width), Math.Max(0, size.Height)));
return finalSize;
}

Loading…
Cancel
Save