Repository: unoplatform/uno
Pull request #20404: fix(ContentDialog): full-size dialog being cut off at bottom
Author: login: Xiaoy312
Created: 2025-05-15T07:26:44Z | Merged: 2025-05-21T20:14:40Z

GitHub Issue (If applicable): closes #20278

<!-- Link to relevant GitHub issue if applicable. All PRs should be associated with an issue (GitHub issue or internal), unless the change is documentation related. -->

## PR Type

What kind of change does this PR introduce?
- Bugfix

## What is the current behavior?
On skia-mobile, the ContentDialog is being cut off at the bottom.

## What is the new behavior?
^ no more.

## PR Checklist
Please check if your PR fulfills the following requirements:
- [ ] Docs have been added/updated which fit [documentation template](https://github.com/unoplatform/uno/blob/master/doc/.feature-template.md) (for bug fixes / features)
- [x] [Unit Tests and/or UI Tests](https://github.com/unoplatform/uno/blob/master/doc/articles/uno-development/working-with-the-samples-apps.md) for the changes have been added (for bug fixes / features) (if applicable)
- [ ] Validated PR `Screenshots Compare Test Run` results.
- [x] Contains **NO** breaking changes
- [x] Associated with an issue (GitHub or internal) and uses the [automatic close keywords](https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue).
- [x] Commits must be following the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) specification.

## Other information
The dialog is being forced to be at screen-size, while also placed lower than the status-bar, thus pushing it off the screen.


Linked issue #20278: [Uno 6 Regression - iOS/Android] ContentDialog cuts off bottom
### Current behavior

When using SkiaRenderer, content dialogs with a lot of content that scrolls cut off the bottom of the dialog, except for when the keyboard is open. Notice how the buttons on the bottom are only showing when the keyboard is open:

https://github.com/user-attachments/assets/bcf6cc71-efa9-4c56-9a0d-551bc0c621f1

### Expected behavior

Content dialog should not cut off (notice buttons are always visible):

https://github.com/user-attachments/assets/862bfbc5-623a-4297-9955-50a16a6258d9

### How to reproduce it (as minimally and precisely as possible)

_No response_

### Workaround

_No response_

### Works on UWP/WinUI

Yes

### Environment

Uno.WinUI / Uno.WinUI.WebAssembly / Uno.WinUI.Skia

### NuGet package version(s)

6.0.67

### Renderer

- [x] Skia
- [ ] Native

### Affected platforms

Android, iOS

### IDE

_No response_

### IDE version

_No response_

### Relevant plugins

_No response_

### Anything else we need to know?

_No response_
Linked issue comments: user: login: mikernet
created_at: 2025-05-09T14:26:08Z
body: The positioning of the dialogs also appears to be off when they can fit on the screen. In this case the whole dialog fits without scrolling, but as you can see it is pushed down so there is a gap at the top and the bottom is cut off (this also happens on both iOS and Android):

![Image](https://github.com/user-attachments/assets/cd422336-302d-49c2-b690-143f383305f0)
author_association: CONTRIBUTOR
user: login: Darsh0307
created_at: 2025-05-22T14:10:55Z
body: @jeromelaban @mikernet 

This issue seems to be solved with the latest sdk 

Uno.sdk:- 6.0.98 
VS version:- 17.14.0


https://github.com/user-attachments/assets/97fb485b-b19d-4862-9f37-ef53c9d1425b
author_association: CONTRIBUTOR

Diff:
diff --git a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ContentDialog.cs b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ContentDialog.cs
index 4c109c9c19e4..47d739464993 100644
--- a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ContentDialog.cs
+++ b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ContentDialog.cs
@@ -21,6 +21,7 @@
 using Microsoft.UI.Xaml.Automation.Peers;
 using MUXControlsTestApp.Utilities;
 using Combinatorial.MSTest;
+using Uno.UI.Extensions;
 
 namespace Uno.UI.RuntimeTests.Tests.Windows_UI_Xaml_Controls
 {
@@ -150,6 +151,52 @@ public async Task When_FullSizeDesired()
 			}
 		}
 
+		[ConditionalTest(IgnoredPlatforms = RuntimeTestPlatforms.SkiaIslands | RuntimeTestPlatforms.Native)]
+		public async Task When_Uncapped_FullSizeDesired()
+		{
+			var SUT = new MyContentDialog(unconstrained: true)
+			{
+				Content = new Grid
+				{
+					BorderBrush = new SolidColorBrush(Colors.Red),
+					BorderThickness = new Thickness(5),
+				},
+				Background = new SolidColorBrush(Colors.SkyBlue),
+				PrimaryButtonText = "YES",
+				SecondaryButtonText = "NO",
+			};
+			SUT.FullSizeDesired = true;
+			SetXamlRootForIslandsOrWinUI(SUT);
+
+			var nativeUnsafeArea = ScreenHelper.GetUnsafeArea();
+
+			using (ScreenHelper.OverrideVisibleBounds(new Thickness(0, 38, 0, 72), skipIfHasNativeUnsafeArea: (nativeUnsafeArea.Top + nativeUnsafeArea.Bottom) > 50))
+			{
+				try
+				{
+					await ShowDialog(SUT);
+
+					var bgeScreenRect = SUT.BackgroundElement.GetOnScreenBounds();
+					var visibleBounds = ApplicationView.GetForCurrentView().VisibleBounds;
+
+					var scale =
+#if HAS_UNO && __SKIA__
+						SUT.BackgroundElement.GetScaleFactorForLayoutRounding();
+#else
+						1;
+#endif
+					var roundingMargin = 0.5 / scale;
+
+					Assert.AreEqual(visibleBounds.Top, bgeScreenRect.Top, roundingMargin * 2);
+					Assert.AreEqual(visibleBounds.Height, bgeScreenRect.Height, roundingMargin * 2);
+				}
+				finally
+				{
+					SUT.Hide();
+				}
+			}
+		}
+
 		[TestMethod]
 		public async Task When_DefaultButton_Not_Set()
 		{
@@ -758,18 +805,34 @@ private void SetXamlRootForIslandsOrWinUI(ContentDialog dialog)
 
 	public partial class MyContentDialog : ContentDialog
 	{
+		private readonly bool unconstrained;
+		public MyContentDialog(bool unconstrained = false)
+		{
+			this.unconstrained = unconstrained;
+		}
+
 		public Button PrimaryButton { get; private set; }
 		public Border BackgroundElement { get; private set; }
+		public Border Container { get; private set; }
 		public Grid LayoutRoot { get; private set; }
 		public ScrollViewer ContentScrollViewer { get; private set; }
+
 		protected override void OnApplyTemplate()
 		{
 			base.OnApplyTemplate();
 
-			PrimaryButton = GetTemplateChild("PrimaryButton") as Button;
-			BackgroundElement = GetTemplateChild("BackgroundElement") as Border;
+			Container = GetTemplateChild("Container") as Border;
 			LayoutRoot = GetTemplateChild("LayoutRoot") as Grid;
+			BackgroundElement = GetTemplateChild("BackgroundElement") as Border;
+
 			ContentScrollViewer = GetTemplateChild("ContentScrollViewer") as ScrollViewer;
+			PrimaryButton = GetTemplateChild("PrimaryButton") as Button;
+
+			if (unconstrained && BackgroundElement is { })
+			{
+				BackgroundElement.MinWidth = BackgroundElement.MinHeight = 0;
+				BackgroundElement.MaxWidth = BackgroundElement.MaxHeight = double.PositiveInfinity;
+			}
 		}
 	}
 }
diff --git a/src/Uno.UI/UI/Xaml/Controls/ContentDialog/ContentDialog.Visuals.cs b/src/Uno.UI/UI/Xaml/Controls/ContentDialog/ContentDialog.Visuals.cs
index 071a85f1682d..acf80eccf779 100644
--- a/src/Uno.UI/UI/Xaml/Controls/ContentDialog/ContentDialog.Visuals.cs
+++ b/src/Uno.UI/UI/Xaml/Controls/ContentDialog/ContentDialog.Visuals.cs
@@ -223,7 +223,11 @@ private void SizeAndPositionContentInPopup()
 				}
 			}
 
+#if !HAS_UNO
 			var xamlRootSize = XamlRoot.Size;
+#else
+			var xamlRootSize = XamlRoot.VisualTree.TrueVisibleBounds.Size;
+#endif
 
 			var flowDirection = FlowDirection;
 


Reviews:
user: login: Xiaoy312
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-15T20:24:31Z
user: login: MartinZikmund
state: APPROVED
author_association: MEMBER
submitted_at: 2025-05-21T07:31:02Z
user: login: copilot-pull-request-reviewer[bot]
body: ## Pull Request Overview

This PR fixes the ContentDialog full-size layout being clipped at the bottom on skia-mobile by switching how the XamlRoot size is measured and adding an “uncapped” test scenario.

- Use `TrueVisibleBounds` on Uno for correct full-screen size.
- Add a new `When_Uncapped_FullSizeDesired` test and support an unconstrained dialog mode in `MyContentDialog`.
- Apply unconstrained sizing in `OnApplyTemplate` to allow infinite growth.

### Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

| File                                                     | Description                                                    |
| -------------------------------------------------------- | -------------------------------------------------------------- |
| src/Uno.UI/UI/Xaml/Controls/ContentDialog/ContentDialog.Visuals.cs | Use `XamlRoot.VisualTree.TrueVisibleBounds.Size` for Uno builds |
| src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ContentDialog.cs | Add a conditional uncapped full-size test and unconstrained dialog mode |




state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-21T12:09:14Z
user: login: jeromelaban
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-21T12:12:43Z
user: login: jeromelaban
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-21T12:13:08Z

Review comments:
diff_hunk: @@ -149,6 +150,54 @@ public async Task When_FullSizeDesired()
 			}
 		}
 
+		[TestMethod]
+		public async Task When_Uncapped_FullSizeDesired()
+		{
+			var SUT = new MyContentDialog(unconstrained: true)
+			{
+				Content = new Grid
+				{
+					BorderBrush = new SolidColorBrush(Colors.Red),
+					BorderThickness = new Thickness(5),
+				},
+				Background = new SolidColorBrush(Colors.SkyBlue),
+				PrimaryButtonText = "YES",
+				SecondaryButtonText = "NO",
+			};
+			SUT.FullSizeDesired = true;
+			SetXamlRootForIslandsOrWinUI(SUT);
+
+			var nativeUnsafeArea = ScreenHelper.GetUnsafeArea();
+
+			using (ScreenHelper.OverrideVisibleBounds(new Thickness(0, 38, 0, 72), skipIfHasNativeUnsafeArea: (nativeUnsafeArea.Top + nativeUnsafeArea.Bottom) > 50))
+			{
+				try
+				{
+					await ShowDialog(SUT);
+
+					var tree = SUT._popup.Child.TreeGraph();
+
path: src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ContentDialog.cs
user: login: Xiaoy312
body: ```suggestion
```
created_at: 2025-05-15T20:24:19Z
author_association: CONTRIBUTOR
diff_hunk: @@ -758,18 +805,34 @@ private void SetXamlRootForIslandsOrWinUI(ContentDialog dialog)
 
 	public partial class MyContentDialog : ContentDialog
 	{
+		private readonly bool unconstrained;
+		public MyContentDialog(bool unconstrained = false)
+		{
+			this.unconstrained = unconstrained;
+		}
+
 		public Button PrimaryButton { get; private set; }
 		public Border BackgroundElement { get; private set; }
+		public Border Container { get; private set; }
path: src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ContentDialog.cs
user: login: Copilot
body: The `Container` property is assigned but never used. Consider removing it or adding a test/logic that uses it to avoid unused members.
```suggestion

```
created_at: 2025-05-21T12:09:13Z
author_association: CONTRIBUTOR
diff_hunk: @@ -150,6 +151,52 @@ public async Task When_FullSizeDesired()
 			}
 		}
 
+		[ConditionalTest(IgnoredPlatforms = RuntimeTestPlatforms.SkiaIslands | RuntimeTestPlatforms.Native)]
+		public async Task When_Uncapped_FullSizeDesired()
+		{
+			var SUT = new MyContentDialog(unconstrained: true)
+			{
+				Content = new Grid
+				{
+					BorderBrush = new SolidColorBrush(Colors.Red),
+					BorderThickness = new Thickness(5),
+				},
+				Background = new SolidColorBrush(Colors.SkyBlue),
+				PrimaryButtonText = "YES",
+				SecondaryButtonText = "NO",
+			};
+			SUT.FullSizeDesired = true;
+			SetXamlRootForIslandsOrWinUI(SUT);
+
+			var nativeUnsafeArea = ScreenHelper.GetUnsafeArea();
+
+			using (ScreenHelper.OverrideVisibleBounds(new Thickness(0, 38, 0, 72), skipIfHasNativeUnsafeArea: (nativeUnsafeArea.Top + nativeUnsafeArea.Bottom) > 50))
path: src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ContentDialog.cs
user: login: Copilot
body: [nitpick] Magic numbers `38` and `72` are hard to interpret. Extract them into named constants or add a comment explaining what safe-area insets they represent.
```suggestion
			const double TopSafeAreaInset = 38;
			const double BottomSafeAreaInset = 72;
			using (ScreenHelper.OverrideVisibleBounds(new Thickness(0, TopSafeAreaInset, 0, BottomSafeAreaInset), skipIfHasNativeUnsafeArea: (nativeUnsafeArea.Top + nativeUnsafeArea.Bottom) > 50))
```
created_at: 2025-05-21T12:09:14Z
author_association: CONTRIBUTOR
diff_hunk: @@ -223,7 +223,11 @@ private void SizeAndPositionContentInPopup()
 				}
 			}
 
+#if !HAS_UNO
 			var xamlRootSize = XamlRoot.Size;
+#else
path: src/Uno.UI/UI/Xaml/Controls/ContentDialog/ContentDialog.Visuals.cs
user: login: Copilot
body: [nitpick] Add a brief comment explaining why `TrueVisibleBounds` must be used for Uno builds, to aid future maintainers in understanding the platform-specific path.
```suggestion
#else
			// On Uno platforms, TrueVisibleBounds is used to account for the visible area of the application window,
			// which may differ from the default Size property due to platform-specific behavior (e.g., system UI overlays).
```
created_at: 2025-05-21T12:09:14Z
author_association: CONTRIBUTOR
diff_hunk: @@ -150,6 +151,52 @@ public async Task When_FullSizeDesired()
 			}
 		}
 
+		[ConditionalTest(IgnoredPlatforms = RuntimeTestPlatforms.SkiaIslands | RuntimeTestPlatforms.Native)]
+		public async Task When_Uncapped_FullSizeDesired()
+		{
+			var SUT = new MyContentDialog(unconstrained: true)
+			{
+				Content = new Grid
+				{
+					BorderBrush = new SolidColorBrush(Colors.Red),
+					BorderThickness = new Thickness(5),
+				},
+				Background = new SolidColorBrush(Colors.SkyBlue),
+				PrimaryButtonText = "YES",
+				SecondaryButtonText = "NO",
+			};
+			SUT.FullSizeDesired = true;
+			SetXamlRootForIslandsOrWinUI(SUT);
+
+			var nativeUnsafeArea = ScreenHelper.GetUnsafeArea();
+
+			using (ScreenHelper.OverrideVisibleBounds(new Thickness(0, 38, 0, 72), skipIfHasNativeUnsafeArea: (nativeUnsafeArea.Top + nativeUnsafeArea.Bottom) > 50))
path: src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ContentDialog.cs
user: login: jeromelaban
body: Extracting may not be useful, but explaining 38/72 may be useful still.
created_at: 2025-05-21T12:12:43Z
author_association: MEMBER
diff_hunk: @@ -758,18 +805,34 @@ private void SetXamlRootForIslandsOrWinUI(ContentDialog dialog)
 
 	public partial class MyContentDialog : ContentDialog
 	{
+		private readonly bool unconstrained;
+		public MyContentDialog(bool unconstrained = false)
+		{
+			this.unconstrained = unconstrained;
+		}
+
 		public Button PrimaryButton { get; private set; }
 		public Border BackgroundElement { get; private set; }
+		public Border Container { get; private set; }
path: src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ContentDialog.cs
user: login: jeromelaban
body: Invalid comment
created_at: 2025-05-21T12:13:08Z
author_association: MEMBER

PR comments:
user: login: unodevops
created_at: 2025-05-15T07:45:45Z
body: 🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-20404/wasm-skia-net9/index.html
author_association: CONTRIBUTOR
user: login: unodevops
created_at: 2025-05-15T07:46:11Z
body: 🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-20404/docs/index.html
author_association: CONTRIBUTOR
user: login: unodevops
created_at: 2025-05-15T10:34:22Z
body: ⚠️⚠️ The build [165751](https://dev.azure.com/uno-platform//Uno%20Platform/_build/results?buildId=165751) has failed on Uno.UI - CI.
author_association: CONTRIBUTOR
user: login: unodevops
created_at: 2025-05-15T18:31:45Z
body: 🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-20404/docs/index.html
author_association: CONTRIBUTOR
user: login: unodevops
created_at: 2025-05-15T18:35:19Z
body: 🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-20404/wasm-skia-net9/index.html
author_association: CONTRIBUTOR
user: login: unodevops
created_at: 2025-05-15T20:44:07Z
body: 🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-20404/wasm-skia-net9/index.html
author_association: CONTRIBUTOR
user: login: unodevops
created_at: 2025-05-15T20:48:17Z
body: 🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-20404/docs/index.html
author_association: CONTRIBUTOR
user: login: Xiaoy312
created_at: 2025-05-16T15:23:31Z
body: fixme:
- [x] native-droid: When_Uncapped_FullSizeDesired
- [x] skia-wpf-island: When_Uncapped_FullSizeDesired
author_association: CONTRIBUTOR
user: login: unodevops
created_at: 2025-05-20T17:13:32Z
body: 🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-20404/docs/index.html
author_association: CONTRIBUTOR
user: login: unodevops
created_at: 2025-05-20T17:28:09Z
body: 🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-20404/wasm-skia-net9/index.html
author_association: CONTRIBUTOR
user: login: unodevops
created_at: 2025-05-20T20:22:24Z
body: 🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-20404/docs/index.html
author_association: CONTRIBUTOR
user: login: unodevops
created_at: 2025-05-20T20:44:00Z
body: 🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-20404/wasm-skia-net9/index.html
author_association: CONTRIBUTOR
user: login: nventive-devops
created_at: 2025-05-21T00:31:43Z
body: The [build 166231](https://dev.azure.com/uno-platform/Uno%20Platform/_build/results?buildId=166231) found UI Test snapshots differences: `android-28-net8`: **20**, `android-28-net8-Snap`: **43**, `ios`: **16**, `ios-Snap`: **42**, `skia-linux-screenshots`: **74**, `skia-windows-screenshots`: **254**, `wasm`: **42**, `wasm-automated-net9.0-WinUI-Benchmarks-automated`: **0**, `wasm-automated-net9.0-WinUI-Default-automated`: **14**, `wasm-automated-net9.0-WinUI-RuntimeTests-0`: **0**, `wasm-automated-net9.0-WinUI-RuntimeTests-1`: **1**, `wasm-automated-net9.0-WinUI-RuntimeTests-2`: **0**

<details>
<summary>Details</summary>


* `android-28-net8`: **20** changed over 824

  <details>
  <summary>🚨🚨 Comparison Details (first 20) 🚨🚨</summary>

  - `DecimalFormatterTest_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage`
  - `Detereminate_ProgressRing_Validation75_[#FF0000_#008000_#008000_#008000]_Progress-Ring-Value-75`
  - `DatePicker_PickerFlyout_PlacementsbottomRight_True_False_True_UITests_Windows_UI_Xaml_Controls_DatePicker_DatePicker_Placement`
  - `Detereminate_ProgressRing_Validation25_[#FF0000_#008000_#FF0000_#FF0000]_Progress-Ring-Value-25`
  - `ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220`
  - `ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220`
  - `WebView_NavigateToAnchor_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation`
  - `When_BitmapIcon_Generic_Changed`
  - `UpDownEnabledTest_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage`
  - `When_BitmapIcon_Generic_Initial`
  - `When_MultipleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers`
  - `When_BitmapIcon_Generic_UITests_Shared_Windows_UI_Xaml_Controls_BitmapIconTests_BitmapIcon_Generic`
  - `When_Parent_PointerMoved_After_drag_on_non-scrolling_ScrollViewer`
  - `When_NoSelectionWithItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers`
  - `When_NoSelection_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers`
  - `When_SingleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers`
  - `When_Parent_PointerMoved_After_drag_on_ScrollViewer_-_touch`
  - `SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage`
  - `Detereminate_ProgressRing_Validation50_[#FF0000_#008000_#008000_#FF0000]_Progress-Ring-Value-50`
  - `NativeCommandBar_Size_Uno_UI_Samples_Content_UITests_CommandBar_CommandBar_Dynamic`
  </details>

* `android-28-net8-Snap`: **43** changed over 1067

  <details>
  <summary>🚨🚨 Comparison Details (first 20) 🚨🚨</summary>

  - `TeachingTip_UITests_Microsoft_UI_Xaml_Controls_TeachingTipTests_TeachingTipPage_UITests_Microsoft_UI_Xaml_Controls_TeachingTipTests_TeachingTipPage`
  - `MUX_NumberBox_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage`
  - `Default_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation`
  - `NavigationView_MUXControlsTestApp_NavigationViewCustomThemeResourcesPage_MUXControlsTestApp_NavigationViewCustomThemeResourcesPage`
  - `Border_BorderCenteredwithmargins_Uno_UI_Samples_UITests_BorderTestsControl_BorderCenteredwithmargins`
  - `Border_Border_Simple_No_Background_With_TextBox_Uno_UI_Samples_UITests_BorderTestsControl_Border_Simple_No_Background_With_TextBox`
  - `TextBox_TextBox_MaxLength_UITests_Shared_Windows_UI_Xaml_Controls_TextBoxTests_TextBox_MaxLength`
  - `TextBox_TextBox_Padding_In_ScrollViewer_Uno_UI_Samples_Content_UITests_TextBoxControl_TextBox_Padding_In_ScrollViewer`
  - `Transform_Basics_UITests_Shared_Windows_UI_Xaml_Media_Transform_Basics`
  - `Brushes_ImageBrushChangingCornerRadius_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushChangingCornerRadius`
  - `ListView_ListViewSelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItems`
  - `MediaPlayerElement_Using_3gp_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_3gp_Extension`
  - `MediaPlayerElement_Using_mp3_Audio_only_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Mp3_Extension`
  - `MediaPlayerElement_Using_ogg_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Ogg_Extension`
  - `Border_BorderLeftwithmargins_Uno_UI_Samples_UITests_BorderTestsControl_BorderLeftwithmargins`
  - `MUX_UITests_Shared_Microsoft_UI_Xaml_Controls_TreeViewTests_TreeViewPage_UITests_Shared_Microsoft_UI_Xaml_Controls_TreeViewTests_TreeViewPage`
  - `WebView_UITests_Microsoft_UI_Xaml_Controls_WebView2Tests_WebView2_NavigationProperties_UITests_Microsoft_UI_Xaml_Controls_WebView2Tests_WebView2_NavigationProperties`
  - `WebView_UITests_Microsoft_UI_Xaml_Controls_WebView2Tests_WebView2_Title_UITests_Microsoft_UI_Xaml_Controls_WebView2Tests_WebView2_Title`
  - `NavigationView_MUXControlsTestApp_NavigationViewTopNavPage_MUXControlsTestApp_NavigationViewTopNavPage`
  - `WebView_WebView_JavascriptInvoke_Uno_UI_Samples_Content_UITests_WebView_WebView_JavascriptInvoke`
  </details>

* `ios`: **16** changed over 255

  <details>
  <summary>🚨🚨 Comparison Details (first 20) 🚨🚨</summary>

  - `Check_ListView_Swallows_Measure_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_With_ListViews_Count_Measure`
  - `When_TextSize_Then_RelativeSize_UITests_Windows_UI_Xaml_Controls_TextBlockControl_TextBlock_RelativeTextSize`
  - `Image_Margins_Identical_WriteableBitmap_Invalidate_-_Result`
  - `Screenshots_Image_Stretch_Alignment_Smaller_Mode-1`
  - `Screenshots_Image_Stretch_Alignment_Smaller_Mode-2`
  - `ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220`
  - `When_SingleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers`
  - `Change_Manipulation_Property_UITests_Shared_Windows_UI_Xaml_Controls_BorderTests_Border_Clipped_Change_Property`
  - `Screenshots_Image_Stretch_Alignment_SizeOnControl_Mode-0`
  - `SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage`
  - `ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220`
  - `Screenshots_Image_Stretch_Alignment_SizeOnControl_Mode-3`
  - `Screenshots_Image_Stretch_Alignment_Smaller_Mode-0`
  - `Screenshots_Image_Stretch_Alignment_Smaller_Mode-3`
  - `Screenshots_Image_Stretch_Alignment_SizeOnControl_Mode-1`
  - `Screenshots_Image_Stretch_Alignment_SizeOnControl_Mode-2`
  </details>

* `ios-Snap`: **42** changed over 984

  <details>
  <summary>🚨🚨 Comparison Details (first 20) 🚨🚨</summary>

  - `Brushes_UITests_Shared_Windows_UI_Xaml_Media_ImageBrushTests_ImageBrush_SameWithDelay_UITests_Shared_Windows_UI_Xaml_Media_ImageBrushTests_ImageBrush_SameWithDelay`
  - `Brushes_ImageBrushStretch_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushStretch`
  - `Brushes_Uno_UI_Samples_UITests_ImageBrushTestControl_Ellipse_Uno_UI_Samples_UITests_ImageBrushTestControl_Ellipse`
  - `Buttons_Custom_Button_With_ContentTemplate_Uno_UI_Samples_Content_UITests_ButtonTestsControl_Custom_Button_With_ContentTemplate`
  - `TextBox_TextBox_Disabled_State_Uno_UI_Samples_Content_UITests_TextBoxControl_TextBox_Disabled_State`
  - `Image_UITests_Windows_UI_Xaml_Controls_ImageTests_Image_Formats_UITests_Windows_UI_Xaml_Controls_ImageTests_Image_Formats`
  - `TextBlock_TextBoxSizeChanging_Uno_UI_Samples_Content_UITests_TextBlockControl_TextBoxSizeChanging`
  - `ContentControl_ContentControl_Nested_TemplatedParent_Uno_UI_Samples_Content_UITests_ContentControlTestsControl_ContentControl_Nested_TemplatedParent`
  - `Default_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation`
  - `ListView_ListView_Aligned_Left_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_Aligned_Left`
  - `Brushes_GenericApp_Views_Content_UITests_ImageBrushTestControl_ImageBrush_UniformToFill_GenericApp_Views_Content_UITests_ImageBrushTestControl_ImageBrush_UniformToFill`
  - `Brushes_Uno_UI_Samples_Samples_Shared_Content_UITests_ImageBrushInList_Uno_UI_Samples_Samples_Shared_Content_UITests_ImageBrushInList`
  - `Default_UITests_Windows_UI_Xaml_Controls_TextBox_TextBox_Foreground_Changing_UITests_Windows_UI_Xaml_Controls_TextBox_TextBox_Foreground_Changing`
  - `MediaPlayerElement_Using_ogg_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Ogg_Extension`
  - `MenuBar_SimpleMenuBar_UITests_Shared_Windows_UI_Xaml_Controls_MenuBarTests_SimpleMenuBar`
  - `Microsoft_UI_Composition_UITests_Shared_Windows_UI_Composition_SKCanvasElement_Simple_UITests_Shared_Windows_UI_Composition_SKCanvasElement_Simple`
  - `SwipeControl_MUXControlsTestApp_SwipeControlPage2_MUXControlsTestApp_SwipeControlPage2`
  - `Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Wider_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Wider`
  - `Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Uno_UI_Samples_UITests_Image_Image_Stretch`
  - `Icons_UITests_Microsoft_UI_Xaml_Controls_ImageIconTests_ImageIconPage_UITests_Microsoft_UI_Xaml_Controls_ImageIconTests_ImageIconPage`
  </details>

* `skia-linux-screenshots`: **74** changed over 2246

  <details>
  <summary>🚨🚨 Comparison Details (first 20) 🚨🚨</summary>

  - `CalendarView_Theming.png-dark`
  - `ImageBrushAlignmentXY.png`
  - `Examples.png`
  - `Gamepad_Enumeration.png-dark`
  - `Image_Stretch_None.png-dark`
  - `ListViewHeaderUpdate.png-dark`
  - `ListViewSelectedItems.png`
  - `RepeatButton_Automated.png`
  - `ToggleButton_IsEnabled_Automated.png-dark`
  - `Window_SetBackground.png-dark`
  - `Window_SetBackground.png`
  - `DisplayInformation.png`
  - `Native_ToggleSwitch_IsOn.png`
  - `Buttons.png-dark`
  - `ExpanderColorValidationPage.png-dark`
  - `UIElement_MeasureDirtyPath.png`
  - `TextBox_Disabled_State.png`
  - `ExpanderColorValidationPage.png`
  - `UIElement_Layout_Bug2879.png-dark`
  - `SelectorBarSamplePage.png-dark`
  </details>

* `skia-windows-screenshots`: **254** changed over 2246

  <details>
  <summary>🚨🚨 Comparison Details (first 20) 🚨🚨</summary>

  - `AndroidWindowInsets.png-dark`
  - `AutoSuggestBoxChosenSuggestion.png`
  - `AutoSuggestBox_BitmapIcon.png-dark`
  - `AutoSuggestBox_BitmapIcon.png`
  - `AutoSuggestBox_Description.png-dark`
  - `BitmapIcon_Foreground.png`
  - `BitmapIcon_Generic.png-dark`
  - `Border_AntiAlias.png-dark`
  - `Border_CornerRadius_Clipping.png-dark`
  - `Border_AntiAlias.png`
  - `Border_CornerRadius_Clipping.png`
  - `Button_Click_Verify_SynchronizationContext.png-dark`
  - `Button_Click_Verify_SynchronizationContext.png`
  - `CalendarView_Theming.png-dark`
  - `CalendarView_Theming.png`
  - `Clipping652.png`
  - `CheckBox_States.png-dark`
  - `CornerRadiusControls.png-dark`
  - `CornerRadiusControls.png`
  - `DatePicker_VisualStates.png-dark`
  </details>

* `wasm`: **42** changed over 1051

  <details>
  <summary>🚨🚨 Comparison Details (first 20) 🚨🚨</summary>

  - `SamplesApp.Wasm.Windows_UI_Xaml_Controls.ListView.ListView_IsSelected`
  - `UITests.Shared.Windows_UI_Xaml_Controls.ListView_Header_DataContextChanging`
  - `UITests.Windows_UI_Xaml.DragAndDrop.DragDrop_TestPage`
  - `UITests.Windows_UI_Xaml_Controls.CheckBoxTests.CheckBox_States`
  - `UITests.Windows_UI_Xaml_Controls.ListView.ListView_DisplayMemberPath`
  - `UITests.Windows_UI_Xaml_Controls.SwipeControlTests.SwipeControl_ListView_ItemClick`
  - `GenericApp.Views.Samples.Shared.Content.UITests.GridViewMultipleSelectionMode`
  - `SamplesApp.Wasm.Windows_UI_Xaml_Controls.ComboBox.ComboBox_DropDownWidth`
  - `UITests.Shared.Windows_UI_Xaml_Controls.MediaPlayerElement.MediaPlayerElement_Ogg_Extension`
  - `MUXControlsTestApp.SwipeControlPage2`
  - `SamplesApp.Wasm.Windows_UI_Xaml_Controls.ComboBox.ComboBox_Corners`
  - `Uno.UI.Samples.Content.UITests.CommandBar.CommandBar_With_Long_Sentences`
  - `initial_state`
  - `SamplesApp.Windows_UI_Xaml_Controls.ListView.ListView_ItemContainerStyleSelector`
  - `UITests.Shared.Windows_UI_Xaml_Controls.ListView.ListView_ChangeView`
  - `UITests.Windows_UI_Xaml_Media_Animation.ColorAnimation_Background`
  - `Uno.UI.Samples.Content.UITests.ButtonTestsControl.RadioButton_With_GroupName`
  - `Uno.UI.Samples.Content.UITests.GridTestsControl.Grid_with_UserControlMargin`
  - `SamplesApp.Windows_UI_Xaml_Controls.ListView.ListViewSelectedItems`
  - `SamplesApp.Windows_UI_Xaml_Controls.ListView.UndefinedHeightListView`
  </details>

* `wasm-automated-net9.0-WinUI-Benchmarks-automated`: **0** changed over 1

* `wasm-automated-net9.0-WinUI-Default-automated`: **14** changed over 876

  <details>
  <summary>🚨🚨 Comparison Details (first 20) 🚨🚨</summary>

  - `Default_StrokeThickness_MyLine`
  - `When_NoSelection_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers`
  - `Default_StrokeThickness_MyPolygon`
  - `ToggleCollapsedStateToVerifyClipping_UITests_Shared_Microsoft_UI_Xaml_Controls_ExpanderTests_ExpanderColorValidationPage`
  - `When_MultipleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers`
  - `Default_StrokeThickness_MyPolyline`
  - `TestProgressRing_InitialState_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features`
  - `Default_StrokeThickness_MyEllipse`
  - `Default_StrokeThickness_MyRect`
  - `SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage`
  - `Default_StrokeThickness_MyPath`
  - `ListView_SelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItems`
  - `When_ExtendedSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers`
  - `When_SingleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers`
  </details>

* `wasm-automated-net9.0-WinUI-RuntimeTests-0`: **0** changed over 1

* `wasm-automated-net9.0-WinUI-RuntimeTests-1`: **1** changed over 1

  <details>
  <summary>🚨🚨 Comparison Details (first 20) 🚨🚨</summary>

  - `RunRuntimeTests_SamplesApp_Samples_UnitTests_UnitTestsPage`
  </details>

* `wasm-automated-net9.0-WinUI-RuntimeTests-2`: **0** changed over 1

</details>

author_association: CONTRIBUTOR
user: login: MartinZikmund
created_at: 2025-05-21T08:51:52Z
body: @mergifyio backport release/stable/6.0
author_association: MEMBER
user: login: mergify[bot]
created_at: 2025-05-21T08:51:57Z
body: > backport release/stable/6.0

#### 🟠 Waiting for conditions to match

<details>

- [ ] `merged` [📌 backport requirement]

</details>


<!---
DO NOT EDIT
-*- Mergify Payload -*-
{"command": "backport release/stable/6.0", "conclusion": null, "action_is_running": false}
-*- Mergify Payload End -*-
-->
author_association: CONTRIBUTOR
user: login: jeromelaban
created_at: 2025-05-21T20:14:54Z
body: @mergifyio backport release/stable/6.0 
author_association: MEMBER
user: login: mergify[bot]
created_at: 2025-05-21T20:14:59Z
body: > backport release/stable/6.0

#### ✅ Backports have been created

<details>

* [#20494 fix(ContentDialog): full-size dialog being cut off at bottom (backport #20404)](https://github.com/unoplatform/uno/pull/20494) has been created for branch `release/stable/6.0` but encountered conflicts

</details>


<!---
DO NOT EDIT
-*- Mergify Payload -*-
{"command": "backport release/stable/6.0", "conclusion": "success", "action_is_running": true}
-*- Mergify Payload End -*-
-->
author_association: CONTRIBUTOR