我一直在尝试使用以下几行导航到页面中按钮事件的特定选项卡/页面,但是,它对我不起作用。
private void Button_Clicked(object sender, EventArgs e)
{
//Shell.Current.GoToAsync($"//MainPage/Page2", true);
Shell.Current.GoToAsync($"//Page2", true);
}
// 我在 AppShell.xaml 文件中的选项卡:
<TabBar x:Name="tb_pages" >
<Tab Title="Page 1" Icon="icon_feed.png" >
<ShellContent ContentTemplate="{DataTemplate local:Page1}" />
</Tab>
<Tab Title="Page 2" Icon="icon_feed.png">
<ShellContent ContentTemplate="{DataTemplate local:Page2}"/>
</Tab>
<TabBar>
//AppShell.cs 看起来像:
public AppShell()
{
InitializeComponent();
///
Routing.RegisterRoute(nameof(Page1), typeof(Page1));
Routing.RegisterRoute(nameof(Page2), typeof(Page2));
}
我希望在我的AppShell导航线路中设置的适当标签。我只想以编程方式进行。
我找不到任何我可以有意调用并跳转到我想要的特定选项卡的选项卡选择/单击事件。
我为父元素
Route
添加了
TabBar
,并在
Route
中添加了Shell.xaml
AppShell.xaml.cs
public partial class AppShell : Shell
{
public AppShell()
{
InitializeComponent();
}
}
AppShell.xaml
<?xml version="1.0" encoding="UTF-8" ?>
<Shell
x:Class="MauiApp320.AppShell"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:MauiApp320"
Shell.FlyoutBehavior="Disabled"
>
<TabBar x:Name="tb_pages" Route="root" >
<Tab x:Name="tab1" Route="page1" Title="Page 1" Icon="image1.png" >
<ShellContent ContentTemplate="{DataTemplate local:Page1}" />
</Tab>
<Tab x:Name="tab2" Route="page2" Title="Page 2" Icon="image2.png">
<ShellContent ContentTemplate="{DataTemplate local:Page2}"/>
</Tab>
</TabBar>
</Shell>
在第一页(Page1
),我添加了一个按钮并导航到
Page2
,如下所示:
public partial class Page1 : ContentPage
{
public Page1()
{
InitializeComponent();
}
private void Button_Clicked(object sender, EventArgs e)
{
Shell.Current.GoToAsync($"//page2", true);
}
}
注意:如果要在AppShell
处更改为其他选项卡,可以参考文档选项卡选择。