From 310d594461463a0010f9cee4c65391cee2577be5 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Thu, 14 May 2020 08:34:33 +0200 Subject: [PATCH] StackLayout incorrect sizing bug Ported from https://github.com/microsoft/microsoft-ui-xaml/commit/c621498e61909850f1d7d0e760a296355f75d58f --- src/Avalonia.Layout/StackLayout.cs | 4 ++-- src/Avalonia.Layout/StackLayoutState.cs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Avalonia.Layout/StackLayout.cs b/src/Avalonia.Layout/StackLayout.cs index b383c205f9..d11875b2c1 100644 --- a/src/Avalonia.Layout/StackLayout.cs +++ b/src/Avalonia.Layout/StackLayout.cs @@ -277,6 +277,8 @@ namespace Avalonia.Layout protected internal override Size MeasureOverride(VirtualizingLayoutContext context, Size availableSize) { + ((StackLayoutState)context.LayoutState).OnMeasureStart(); + var desiredSize = GetFlowAlgorithm(context).Measure( availableSize, context, @@ -300,8 +302,6 @@ namespace Avalonia.Layout FlowLayoutAlgorithm.LineAlignment.Start, LayoutId); - ((StackLayoutState)context.LayoutState).OnArrangeLayoutEnd(); - return new Size(value.Width, value.Height); } diff --git a/src/Avalonia.Layout/StackLayoutState.cs b/src/Avalonia.Layout/StackLayoutState.cs index 05ad9bca8e..e6164e02e6 100644 --- a/src/Avalonia.Layout/StackLayoutState.cs +++ b/src/Avalonia.Layout/StackLayoutState.cs @@ -56,6 +56,6 @@ namespace Avalonia.Layout MaxArrangeBounds = Math.Max(MaxArrangeBounds, minorSize); } - internal void OnArrangeLayoutEnd() => MaxArrangeBounds = 0; + internal void OnMeasureStart() => MaxArrangeBounds = 0; } }