From 67aa902fa0acb56af190b9c84163c1ad53385ce3 Mon Sep 17 00:00:00 2001 From: Shane Neuville Date: Wed, 12 Nov 2025 12:17:36 -0600 Subject: [PATCH 01/14] Add safe area demo layouts and examples for edge-to-edge content --- .../SafeAreaDemos/Example1EdgeToEdge.xaml | 30 ++++++++ .../SafeAreaDemos/Example1EdgeToEdge.xaml.cs | 20 +++++ .../SafeAreaDemos/Example2RespectAll.xaml | 41 +++++++++++ .../SafeAreaDemos/Example2RespectAll.xaml.cs | 59 +++++++++++++++ .../SafeAreaDemos/Example3KeyboardAware.xaml | 32 ++++++++ .../Example3KeyboardAware.xaml.cs | 21 ++++++ .../Example4ImmersiveScrolling.xaml | 28 +++++++ .../Example4ImmersiveScrolling.xaml.cs | 9 +++ .../Example5PerLayoutControl.xaml | 40 ++++++++++ .../Example5PerLayoutControl.xaml.cs | 9 +++ .../SafeAreaDemos/Example6BestPractices.xaml | 22 ++++++ .../Example6BestPractices.xaml.cs | 9 +++ .../ExampleEdgeToEdgeNavPage.xaml | 73 +++++++++++++++++++ .../ExampleEdgeToEdgeNavPage.xaml.cs | 9 +++ .../ExampleTransparentNavBar.xaml | 63 ++++++++++++++++ .../ExampleTransparentNavBar.xaml.cs | 9 +++ 16 files changed, 474 insertions(+) create mode 100644 10.0/UserInterface/Layouts/SafeAreaDemos/Example1EdgeToEdge.xaml create mode 100644 10.0/UserInterface/Layouts/SafeAreaDemos/Example1EdgeToEdge.xaml.cs create mode 100644 10.0/UserInterface/Layouts/SafeAreaDemos/Example2RespectAll.xaml create mode 100644 10.0/UserInterface/Layouts/SafeAreaDemos/Example2RespectAll.xaml.cs create mode 100644 10.0/UserInterface/Layouts/SafeAreaDemos/Example3KeyboardAware.xaml create mode 100644 10.0/UserInterface/Layouts/SafeAreaDemos/Example3KeyboardAware.xaml.cs create mode 100644 10.0/UserInterface/Layouts/SafeAreaDemos/Example4ImmersiveScrolling.xaml create mode 100644 10.0/UserInterface/Layouts/SafeAreaDemos/Example4ImmersiveScrolling.xaml.cs create mode 100644 10.0/UserInterface/Layouts/SafeAreaDemos/Example5PerLayoutControl.xaml create mode 100644 10.0/UserInterface/Layouts/SafeAreaDemos/Example5PerLayoutControl.xaml.cs create mode 100644 10.0/UserInterface/Layouts/SafeAreaDemos/Example6BestPractices.xaml create mode 100644 10.0/UserInterface/Layouts/SafeAreaDemos/Example6BestPractices.xaml.cs create mode 100644 10.0/UserInterface/Layouts/SafeAreaDemos/ExampleEdgeToEdgeNavPage.xaml create mode 100644 10.0/UserInterface/Layouts/SafeAreaDemos/ExampleEdgeToEdgeNavPage.xaml.cs create mode 100644 10.0/UserInterface/Layouts/SafeAreaDemos/ExampleTransparentNavBar.xaml create mode 100644 10.0/UserInterface/Layouts/SafeAreaDemos/ExampleTransparentNavBar.xaml.cs diff --git a/10.0/UserInterface/Layouts/SafeAreaDemos/Example1EdgeToEdge.xaml b/10.0/UserInterface/Layouts/SafeAreaDemos/Example1EdgeToEdge.xaml new file mode 100644 index 000000000..d3287652b --- /dev/null +++ b/10.0/UserInterface/Layouts/SafeAreaDemos/Example1EdgeToEdge.xaml @@ -0,0 +1,30 @@ + + + + + + + + + + + + diff --git a/10.0/UserInterface/Layouts/SafeAreaDemos/Example1EdgeToEdge.xaml.cs b/10.0/UserInterface/Layouts/SafeAreaDemos/Example1EdgeToEdge.xaml.cs new file mode 100644 index 000000000..b0b872160 --- /dev/null +++ b/10.0/UserInterface/Layouts/SafeAreaDemos/Example1EdgeToEdge.xaml.cs @@ -0,0 +1,20 @@ +namespace Maui.Controls.Sample; + +public partial class Example1EdgeToEdge : ContentPage +{ + public Example1EdgeToEdge() + { + InitializeComponent(); + } + + protected override void OnAppearing() + { + base.OnAppearing(); + + // Hide navigation bar for true edge-to-edge experience + if (Parent is NavigationPage navPage) + { + NavigationPage.SetHasNavigationBar(this, false); + } + } +} diff --git a/10.0/UserInterface/Layouts/SafeAreaDemos/Example2RespectAll.xaml b/10.0/UserInterface/Layouts/SafeAreaDemos/Example2RespectAll.xaml new file mode 100644 index 000000000..3f2511ec3 --- /dev/null +++ b/10.0/UserInterface/Layouts/SafeAreaDemos/Example2RespectAll.xaml @@ -0,0 +1,41 @@ + + + + diff --git a/10.0/UserInterface/Layouts/SafeAreaDemos/SafeAreaDemos/Views/Example2RespectAll.xaml b/10.0/UserInterface/Layouts/SafeAreaDemos/SafeAreaDemos/Views/Example2RespectAll.xaml index f64639e76..ac710ea24 100644 --- a/10.0/UserInterface/Layouts/SafeAreaDemos/SafeAreaDemos/Views/Example2RespectAll.xaml +++ b/10.0/UserInterface/Layouts/SafeAreaDemos/SafeAreaDemos/Views/Example2RespectAll.xaml @@ -41,8 +41,16 @@ FontSize="24" FontAttributes="Bold" Background="Transparent" - Clicked="Button_Clicked" - Padding="0"/> + VerticalOptions="Center" + HorizontalOptions="Center" + Clicked="Button_Clicked"> + + + + + + diff --git a/10.0/UserInterface/Layouts/SafeAreaDemos/SafeAreaDemos/Views/Example4Default.xaml b/10.0/UserInterface/Layouts/SafeAreaDemos/SafeAreaDemos/Views/Example4Default.xaml index c9f18f859..8ce6dc373 100644 --- a/10.0/UserInterface/Layouts/SafeAreaDemos/SafeAreaDemos/Views/Example4Default.xaml +++ b/10.0/UserInterface/Layouts/SafeAreaDemos/SafeAreaDemos/Views/Example4Default.xaml @@ -3,11 +3,10 @@ xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="SafeAreaDemos.Views.Example4Default" SafeAreaEdges="Default" - Title="SafeAreaEdges: Default" Shell.NavBarIsVisible="False"> - - + + VerticalOptions="Center" + HorizontalOptions="Center" + Clicked="Button_Clicked"> + + + + + + - + + @@ -99,6 +107,6 @@ Margin="10,0,0,0"/> - - + + \ No newline at end of file diff --git a/10.0/UserInterface/Layouts/SafeAreaDemos/SafeAreaDemos/Views/Example5Container.xaml b/10.0/UserInterface/Layouts/SafeAreaDemos/SafeAreaDemos/Views/Example5Container.xaml index 01f3f6609..754c8d41c 100644 --- a/10.0/UserInterface/Layouts/SafeAreaDemos/SafeAreaDemos/Views/Example5Container.xaml +++ b/10.0/UserInterface/Layouts/SafeAreaDemos/SafeAreaDemos/Views/Example5Container.xaml @@ -38,13 +38,20 @@ FontSize="24" FontAttributes="Bold" Background="Transparent" - Clicked="Button_Clicked" - Padding="0"/> + VerticalOptions="Center" + HorizontalOptions="Center" + Clicked="Button_Clicked"> + + + + + + - + From 7be01958ff85620c11c6fb4b2fab7d97c2ff49f9 Mon Sep 17 00:00:00 2001 From: NirmalKumarYuvaraj <97871636+NirmalKumarYuvaraj@users.noreply.github.com> Date: Tue, 25 Nov 2025 15:36:34 +0530 Subject: [PATCH 11/14] added safearea for grid --- .../SafeAreaDemos/Views/Example1EdgeToEdge.xaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/10.0/UserInterface/Layouts/SafeAreaDemos/SafeAreaDemos/Views/Example1EdgeToEdge.xaml b/10.0/UserInterface/Layouts/SafeAreaDemos/SafeAreaDemos/Views/Example1EdgeToEdge.xaml index b34ef066e..4f98ab72f 100644 --- a/10.0/UserInterface/Layouts/SafeAreaDemos/SafeAreaDemos/Views/Example1EdgeToEdge.xaml +++ b/10.0/UserInterface/Layouts/SafeAreaDemos/SafeAreaDemos/Views/Example1EdgeToEdge.xaml @@ -6,11 +6,11 @@ Shell.NavBarIsVisible="False"> - + - +