在.NET MAUI中如何从NavigatingFromEventArgs获取目标页面名称
要从NavigatingFromEventArgs参数里提取目标页面名称,核心是利用参数的Target属性,根据不同导航场景处理:
常规页面导航场景
当目标是普通Page对象时,先做类型转换,再获取页面的类型名称或标题:
protected override void OnNavigatingFrom(NavigatingFromEventArgs args) { if (args.Target is Page targetPage) { // 获取页面类的名称(如"SettingsPage") string pageTypeName = targetPage.GetType().Name; // 若页面设置了Title属性,可获取显示名称 string pageDisplayName = targetPage.Title; // 示例:打印结果 Console.WriteLine($"目标页面类型名:{pageTypeName}"); if (!string.IsNullOrEmpty(pageDisplayName)) { Console.WriteLine($"目标页面显示名:{pageDisplayName}"); } } base.OnNavigatingFrom(args); }
Shell路由导航场景
如果是基于Shell的路由导航,目标会是ShellNavigationTarget,可直接获取路由信息,再根据你的路由规则解析页面名称:
protected override void OnNavigatingFrom(NavigatingFromEventArgs args) { if (args.Target is ShellNavigationTarget shellTarget) { string targetRoute = shellTarget.Route; Console.WriteLine($"目标路由:{targetRoute}"); // 示例:若路由为"//Main/Settings",拆分获取页面名称 string pageName = targetRoute.Split('/').LastOrDefault(); } base.OnNavigatingFrom(args); }
内容的提问来源于stack exchange,提问作者EnCoder
相关产品推荐
相关产品推荐

