Browse Source

Fix ScrollContentPresenter measure/arrange.

pull/58/head
Steven Kirk 12 years ago
parent
commit
fceb9b1ba5
  1. 5
      Perspex.Controls/Presenters/ScrollContentPresenter.cs
  2. 2
      Tests/Perspex.Controls.UnitTests/Perspex.Controls.UnitTests.csproj
  3. 18
      Tests/Perspex.Controls.UnitTests/Presenters/ScrollContentPresenterTests.cs

5
Perspex.Controls/Presenters/ScrollContentPresenter.cs

@ -95,7 +95,10 @@ namespace Perspex.Controls.Presenters
if (child != null) if (child != null)
{ {
child.Arrange(new Rect((Point)(-this.Offset), finalSize)); var size = new Size(
Math.Max(finalSize.Width, child.DesiredSize.Width),
Math.Max(finalSize.Height, child.DesiredSize.Height));
child.Arrange(new Rect((Point)(-this.Offset), size));
return finalSize; return finalSize;
} }

2
Tests/Perspex.Controls.UnitTests/Perspex.Controls.UnitTests.csproj

@ -92,7 +92,7 @@
<Compile Include="BorderTests.cs" /> <Compile Include="BorderTests.cs" />
<Compile Include="DropDownTests.cs" /> <Compile Include="DropDownTests.cs" />
<Compile Include="Presenters\ItemsPresenterTests.cs" /> <Compile Include="Presenters\ItemsPresenterTests.cs" />
<Compile Include="ScrollContentPresenterTests.cs" /> <Compile Include="Presenters\ScrollContentPresenterTests.cs" />
<Compile Include="ScrollViewerTests.cs" /> <Compile Include="ScrollViewerTests.cs" />
<Compile Include="Primitives\SelectingItemsControlTests.cs" /> <Compile Include="Primitives\SelectingItemsControlTests.cs" />
<Compile Include="ListBoxTests.cs" /> <Compile Include="ListBoxTests.cs" />

18
Tests/Perspex.Controls.UnitTests/ScrollContentPresenterTests.cs → Tests/Perspex.Controls.UnitTests/Presenters/ScrollContentPresenterTests.cs

@ -4,7 +4,7 @@
// </copyright> // </copyright>
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
namespace Perspex.Controls.UnitTests namespace Perspex.Controls.UnitTests.Presenters
{ {
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -113,14 +113,10 @@ namespace Perspex.Controls.UnitTests
[Fact] [Fact]
public void Content_Can_Be_Larger_Than_Viewport() public void Content_Can_Be_Larger_Than_Viewport()
{ {
Border content; TestControl content;
var target = new ScrollContentPresenter var target = new ScrollContentPresenter
{ {
Content = (content = new Border Content = (content = new TestControl()),
{
Width = 150,
Height = 150,
}),
}; };
target.Measure(new Size(100, 100)); target.Measure(new Size(100, 100));
@ -184,5 +180,13 @@ namespace Perspex.Controls.UnitTests
Assert.True(target.IsMeasureValid); Assert.True(target.IsMeasureValid);
Assert.False(target.IsArrangeValid); Assert.False(target.IsArrangeValid);
} }
private class TestControl : Control
{
protected override Size MeasureOverride(Size availableSize)
{
return new Size(150, 150);
}
}
} }
} }
Loading…
Cancel
Save