From d5d9aacb658b6ee3c930ea8e5ab96e568927d128 Mon Sep 17 00:00:00 2001 From: Youssef Victor Date: Sat, 12 Oct 2024 11:17:35 +0300 Subject: [PATCH] chore: Adjust --- src/Uno.UI/UI/Xaml/MobileLayoutingHelpers.cs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Uno.UI/UI/Xaml/MobileLayoutingHelpers.cs b/src/Uno.UI/UI/Xaml/MobileLayoutingHelpers.cs index 507989aec71d..349107f6b86c 100644 --- a/src/Uno.UI/UI/Xaml/MobileLayoutingHelpers.cs +++ b/src/Uno.UI/UI/Xaml/MobileLayoutingHelpers.cs @@ -51,7 +51,7 @@ public static Size MeasureElement(View view, Size availableSize) if (view is ILayouterElement layouterElement) { - var desiredSizeFromLayouterElement = layouterElement.Measure(availableSize); + var desiredSizeFromLayouterElement = layouterElement.Measure(availableSize).AtMost(availableSize); LayoutInformation.SetDesiredSize(view, desiredSizeFromLayouterElement); LayoutInformation.SetAvailableSize(view, availableSize); @@ -64,7 +64,7 @@ public static Size MeasureElement(View view, Size availableSize) var widthSpec = ViewHelper.SpecFromLogicalSize(availableSize.Width); var heightSpec = ViewHelper.SpecFromLogicalSize(availableSize.Height); view.Measure(widthSpec, heightSpec); - var desiredSize = Uno.UI.Controls.BindableView.GetNativeMeasuredDimensionsFast(view).PhysicalToLogicalPixels(); + var desiredSize = Uno.UI.Controls.BindableView.GetNativeMeasuredDimensionsFast(view).PhysicalToLogicalPixels().AtMost(availableSize); LayoutInformation.SetDesiredSize(view, desiredSize); LayoutInformation.SetAvailableSize(view, availableSize); @@ -94,14 +94,16 @@ public static Size MeasureElement(View view, Size availableSize) #elif __IOS__ || __MACOS__ #if __IOS__ - var desiredSize = view.SizeThatFits(availableSize); + Size desiredSize = view.SizeThatFits(availableSize); + desiredSize = desiredSize.AtMost(availableSize); #else - CGSize desiredSize = view switch + Size desiredSize = view switch { NSControl nsControl => nsControl.SizeThatFits(availableSize), IHasSizeThatFits hasSizeThatFits => hasSizeThatFits.SizeThatFits(availableSize), _ => view.FittingSize, }; + desiredSize = desiredSize.AtMost(availableSize); #endif LayoutInformation.SetDesiredSize(view, desiredSize);