Browse Source

Fix PixelOverflow during arrange.

pull/545/head
Steven Kirk 11 years ago
parent
commit
7e4f667d89
  1. 2
      src/Avalonia.Controls/VirtualizingStackPanel.cs
  2. 24
      tests/Avalonia.Controls.UnitTests/VirtualizingStackPanelTests.cs

2
src/Avalonia.Controls/VirtualizingStackPanel.cs

@ -40,7 +40,7 @@ namespace Avalonia.Controls
get
{
var bounds = Orientation == Orientation.Horizontal ?
Bounds.Width : Bounds.Height;
_availableSpace.Width : _availableSpace.Height;
return Math.Max(0, _takenSpace - bounds);
}
}

24
tests/Avalonia.Controls.UnitTests/VirtualizingStackPanelTests.cs

@ -80,6 +80,30 @@ namespace Avalonia.Controls.UnitTests
Assert.Equal(2, target.OverflowCount);
}
[Fact]
public void Reports_Correct_Overflow_During_Arrange()
{
var target = (IVirtualizingPanel)new VirtualizingStackPanel();
var controller = new Mock<IVirtualizingController>();
var called = false;
target.Children.Add(new Canvas { Width = 50, Height = 50 });
target.Children.Add(new Canvas { Width = 50, Height = 52 });
target.Measure(new Size(100, 100));
controller.Setup(x => x.UpdateControls()).Callback(() =>
{
Assert.Equal(2, target.PixelOverflow);
Assert.Equal(0, target.OverflowCount);
called = true;
});
target.Controller = controller.Object;
target.Arrange(new Rect(target.DesiredSize));
Assert.True(called);
}
[Fact]
public void Reports_PixelOverflow_After_Arrange()
{

Loading…
Cancel
Save