@ -639,6 +639,9 @@ namespace Avalonia.Controls
"Direct assignment to NavigationPage.Pages is not supported. Use PushAsync, PopAsync, InsertPage, RemovePage, or ReplaceAsync to modify the navigation stack." ) ;
}
if ( change . Property = = SafeAreaPaddingProperty )
UpdateEffectiveBarHeight ( ) ;
base . OnPropertyChanged ( change ) ;
}
@ -750,7 +753,10 @@ namespace Avalonia.Controls
{
if ( _ contentHost ! = null & & _ navBar ! = null )
{
_ navBar . Padding = new Thickness ( SafeAreaPadding . Left , SafeAreaPadding . Top , SafeAreaPadding . Right , 0 ) ;
var safeAreaPadding = IsNavBarEffectivelyVisible ? new Thickness ( SafeAreaPadding . Left , 0 , SafeAreaPadding . Right , SafeAreaPadding . Bottom ) : SafeAreaPadding ;
_ navBar . Padding = IsNavBarEffectivelyVisible
? new Thickness ( SafeAreaPadding . Left , SafeAreaPadding . Top , SafeAreaPadding . Right , 0 )
: default ;
if ( _ pagePresenter ! = null )
_ pagePresenter . Padding = Padding ;
@ -759,8 +765,8 @@ namespace Avalonia.Controls
if ( CurrentPage ! = null )
{
var remainingSafeArea = Padding . GetRemainingSafeAreaPadding ( S afeAreaPadding) ;
CurrentPage . SafeAreaPadding = new Thickness ( remainingSafeArea . Left , 0 , remainingSafeArea . Right , remainingSafeArea . Bottom ) ;
var remainingSafeArea = Padding . GetRemainingSafeAreaPadding ( s afeAreaPadding) ;
CurrentPage . SafeAreaPadding = new Thickness ( remainingSafeArea . Left , remainingSafeArea . Top , remainingSafeArea . Right , remainingSafeArea . Bottom ) ;
}
foreach ( var modal in _ modalStack )
@ -2148,8 +2154,11 @@ namespace Avalonia.Controls
private void UpdateEffectiveBarHeight ( )
{
EffectiveBarHeight = ( CurrentPage ! = null ? GetBarHeightOverride ( CurrentPage ) : null ) ? ? BarHeight ;
PseudoClasses . Set ( ":nav-bar-compact" , EffectiveBarHeight < 4 0 ) ;
var contentBarHeight = ( CurrentPage ! = null ? GetBarHeightOverride ( CurrentPage ) : null ) ? ? BarHeight ;
EffectiveBarHeight = contentBarHeight + SafeAreaPadding . Top ;
PseudoClasses . Set ( ":nav-bar-compact" , contentBarHeight < 4 0 ) ;
UpdateContentSafeAreaPadding ( ) ;
}
private void ApplyNavBarVisibility ( )