From e1b0d5e137fd72cb9abf5b05313a917c7bc26cef Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 3 Apr 2023 10:26:34 +0200 Subject: [PATCH] We can't realize items outside of our bounds. `EffectiveViewportChanged` can result in a viewport that is larger than the panel bounds in cases where clipping is not enabled on the parent. Constrain the viewport to the size of the panel. --- src/Avalonia.Controls/VirtualizingStackPanel.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Avalonia.Controls/VirtualizingStackPanel.cs b/src/Avalonia.Controls/VirtualizingStackPanel.cs index 9378bc391d..6045f85135 100644 --- a/src/Avalonia.Controls/VirtualizingStackPanel.cs +++ b/src/Avalonia.Controls/VirtualizingStackPanel.cs @@ -679,7 +679,7 @@ namespace Avalonia.Controls var oldViewportStart = vertical ? _viewport.Top : _viewport.Left; var oldViewportEnd = vertical ? _viewport.Bottom : _viewport.Right; - _viewport = e.EffectiveViewport; + _viewport = e.EffectiveViewport.Intersect(new(Bounds.Size)); _isWaitingForViewportUpdate = false; var newViewportStart = vertical ? _viewport.Top : _viewport.Left;