diff --git a/src/Controls/src/Core/ShellToolbar.cs b/src/Controls/src/Core/ShellToolbar.cs index aa2aa49b5d92..84af6e3fffee 100644 --- a/src/Controls/src/Core/ShellToolbar.cs +++ b/src/Controls/src/Core/ShellToolbar.cs @@ -113,8 +113,7 @@ internal void ApplyChanges() { var flyoutBehavior = (_shell as IFlyoutView).FlyoutBehavior; #if WINDOWS - IsVisible = (BackButtonVisible || - !String.IsNullOrEmpty(Title) || + IsVisible = (!String.IsNullOrEmpty(Title) || TitleView != null || _toolbarTracker.ToolbarItems.Count > 0 || _menuBarTracker.ToolbarItems.Count > 0 || diff --git a/src/Controls/tests/DeviceTests/Elements/Shell/ShellTests.Windows.cs b/src/Controls/tests/DeviceTests/Elements/Shell/ShellTests.Windows.cs index 677268d1faaa..1dc3dd5c945c 100644 --- a/src/Controls/tests/DeviceTests/Elements/Shell/ShellTests.Windows.cs +++ b/src/Controls/tests/DeviceTests/Elements/Shell/ShellTests.Windows.cs @@ -437,5 +437,25 @@ await CreateHandlerAndAddToWindow(shell, (handler) => return Task.CompletedTask; }); } + + + // this is only relevant on windows where the title/backbutton aren't in the same + // area + [Fact(DisplayName = "Shell Toolbar not visible when only back button is present")] + public async Task ShellToolbarNotVisibleWhenOnlyBackButtonIsPresent() + { + SetupBuilder(); + + var shell = await CreateShellAsync((shell) => + { + shell.CurrentItem = new ContentPage(); + }); + + await CreateHandlerAndAddToWindow(shell, async (handler) => + { + await shell.Navigation.PushAsync(new ContentPage()); + Assert.False(IsNavigationBarVisible(handler)); + }); + } } }