diff --git a/src/Controls/src/Core/Shell/ShellSection.cs b/src/Controls/src/Core/Shell/ShellSection.cs index e5b62bc83075..c2588f51ea73 100644 --- a/src/Controls/src/Core/Shell/ShellSection.cs +++ b/src/Controls/src/Core/Shell/ShellSection.cs @@ -1032,10 +1032,22 @@ internal override void SendDisappearing() PresentedPageDisappearing(); } + bool IsPageVisible() + { + if (this is IShellSectionController sectionController && sectionController.PresentedPage is not null) + { + return sectionController.PresentedPage == ((IShellContentController)CurrentItem)?.Page; + } + return false; + } + internal override void SendAppearing() { base.SendAppearing(); - PresentedPageAppearing(); + if (IsPageVisible()) + { + PresentedPageAppearing(); + } } class NavigationImpl : NavigationProxy