diff --git a/src/Controls/src/Core/Border/Border.cs b/src/Controls/src/Core/Border/Border.cs index b7f6b5804cfa..8b9e77ca26e5 100644 --- a/src/Controls/src/Core/Border/Border.cs +++ b/src/Controls/src/Core/Border/Border.cs @@ -357,6 +357,12 @@ SafeAreaRegions ISafeAreaView2.GetSafeAreaRegionsForEdge(int edge) // Use direct property var regionForEdge = SafeAreaEdges.GetEdge(edge); + if (regionForEdge == SafeAreaRegions.Default) + { + // If no safe area edges are set, return None + return SafeAreaRegions.None; + } + // For Border, return as-is return regionForEdge; } diff --git a/src/Controls/src/Core/ContentView/ContentView.cs b/src/Controls/src/Core/ContentView/ContentView.cs index 7438c52d60cb..89c1b7ef31e6 100644 --- a/src/Controls/src/Core/ContentView/ContentView.cs +++ b/src/Controls/src/Core/ContentView/ContentView.cs @@ -88,6 +88,12 @@ SafeAreaRegions ISafeAreaView2.GetSafeAreaRegionsForEdge(int edge) // Use direct property var regionForEdge = SafeAreaEdges.GetEdge(edge); + if (regionForEdge == SafeAreaRegions.Default) + { + // If no safe area edges are set, return None + return SafeAreaRegions.None; + } + // For ContentView, return the region directly return regionForEdge; } diff --git a/src/Controls/src/Core/Page/Page.cs b/src/Controls/src/Core/Page/Page.cs index be8b94dccbd8..c2f35f7f082b 100644 --- a/src/Controls/src/Core/Page/Page.cs +++ b/src/Controls/src/Core/Page/Page.cs @@ -265,11 +265,15 @@ Thickness ISafeAreaView2.SafeAreaInsets /// SafeAreaRegions ISafeAreaView2.GetSafeAreaRegionsForEdge(int edge) { - // Use new SafeAreaElement method - var regionForEdge = SafeAreaElement.GetEdgeValue(this, edge); - - // For Page (but not ContentPage), return as-is - return regionForEdge; + var ignoreSafeArea = ((ISafeAreaView)this).IgnoreSafeArea; + if (ignoreSafeArea) + { + return SafeAreaRegions.None; // If legacy says "ignore", return None (edge-to-edge) + } + else + { + return SafeAreaRegions.Container; // If legacy says "don't ignore", return Container + } } /// diff --git a/src/Controls/tests/TestCases.HostApp/Issues/Issue28986_Border.xaml b/src/Controls/tests/TestCases.HostApp/Issues/Issue28986_Border.xaml index 158e187d1403..9e089fb3b942 100644 --- a/src/Controls/tests/TestCases.HostApp/Issues/Issue28986_Border.xaml +++ b/src/Controls/tests/TestCases.HostApp/Issues/Issue28986_Border.xaml @@ -3,156 +3,190 @@ xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="Maui.Controls.Sample.Issues.Issue28986_Border" Title="SafeArea Border Test"> - - - - - - -