.NET MAUI中如何遍历TabBar子项及从Shell访问TabBar对象
.NET MAUI Shell TabBar 获取Tab标题的实现方法
要遍历Shell TabBar的子项并获取标题,核心是通过Shell的Items集合定位到TabBar实例,再遍历其内部的Tab元素,具体实现如下:
- 定位TabBar实例
Shell的Items集合包含所有顶级导航元素,其中就包括TabBar。你可以通过LINQ筛选出TabBar类型的项:
// 在Shell代码后台(如AppShell.xaml.cs)中直接获取 var tabBar = this.Items.OfType<TabBar>().FirstOrDefault();
如果是在页面中获取,用Shell.Current拿到当前Shell实例:
var currentShell = Shell.Current; var tabBar = currentShell.Items.OfType<TabBar>().FirstOrDefault();
- 遍历Tab并获取标题
拿到TabBar后,遍历它的Items集合(里面的元素是Tab类型),直接读取Title属性即可:
if (tabBar != null) { foreach (var tab in tabBar.Items.OfType<Tab>()) { string tabTitle = tab.Title; // 这里将标题存入你的模型,比如记录可见状态 // 示例:tabVisibilityModel.AddTab(tabTitle, true); } }
注意事项
- 确保你的XAML结构中,TabBar是直接作为Shell的子元素存在(而非嵌套在FlyoutItem中),否则需要调整筛选逻辑。
- 如果Tab包含多个ShellContent,Tab的Title就是你在TabBar上看到的标签文本,无需额外处理。
内容的提问来源于stack exchange,提问作者doritmtm
相关产品推荐
相关产品推荐

