diff --git a/src/Avalonia.Controls/VirtualizingWrapPanel.cs b/src/Avalonia.Controls/VirtualizingWrapPanel.cs index f379f89025..f0de77bc21 100644 --- a/src/Avalonia.Controls/VirtualizingWrapPanel.cs +++ b/src/Avalonia.Controls/VirtualizingWrapPanel.cs @@ -468,8 +468,11 @@ namespace Avalonia.Controls var uLength = viewport.viewportUVEnd.U; var estimatedItemsPerU = (int)(uLength / estimatedSize.U); var estimatedULanes = Math.Ceiling((double)itemCount / estimatedItemsPerU); - sizeUV.U = estimatedItemsPerU * estimatedSize.U; + sizeUV.U = Math.Max(estimatedItemsPerU * estimatedSize.U, estimatedSize.U); sizeUV.V = estimatedULanes * estimatedSize.V; + + if(double.IsInfinity(sizeUV.V)) + sizeUV.V = estimatedSize.V; } else if (viewport.lastIndex >= 0) {