MAUI怎么在Shell导航中隐藏某个页面 MAUI路由配置

admin 百科 11
.NET MAUI Shell中“隐藏页面”指不显示在Flyout或TabBar中但可通过URI导航,需仅注册路由而不放入可视化容器;可动态设IsVisible控制显隐,并用Navigating事件拦截非法跳转。

MAUI怎么在Shell导航中隐藏某个页面 MAUI路由配置-第1张图片-佛山资讯网

在 .NET MAUI Shell 导航中,**“隐藏某个页面”通常指不让该页面出现在抽屉菜单(Flyout)或标签栏(TabBar)中,但依然能通过 URI 导航跳转过去**——比如详情页、编辑页、登录后跳转页等非主入口页面。这不是真正“禁用”,而是**路由可见性控制**,靠 Shell 的路由注册方式和 UI 结构配置实现。

只注册路由,不放入 FlyoutItem 或 TabBar

Shell 页面是否显示在导航 UI 中,取决于它是否被包含在 FlyoutItemTabBarTab 这些可视化容器里。只要不把页面放进这些结构,它就不会出现在菜单或底部标签中,但仍可通过 GoToAsync 访问。

  • ✅ 正确做法:在 AppShell.xaml 中只给需要展示的页面配 ShellContent,其他页面仅注册路由
  • ❌ 错误做法:把所有页面都塞进 FlyoutItem,再用代码隐藏(无效且破坏结构)

示例:只让 cats/dogs 出现在菜单,monkeys 页面可跳转但不显示


  
    
      
      
    

  

  

然后在 AppShell.xaml.cs 中注册路由:

Routing.RegisterRoute("monkeys", typeof(MonkeysPage));

用 ShellContent 设置 IsVisible="False"

如果某页面已放在 FlyoutItemTab 中,但想临时隐藏(比如权限控制),可以用 IsVisible 属性动态控制其可见性。

标签: go app ai 路由 .net gate

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~