我的 AppShell 上有 3 个 ShellContent,我的问题是,当我位于第二页或第三页或...在我的路线中时,如果我单击路线的 ShellContent,它会将我带回到我想要的第一页当我在同一条路线上时禁用我的按钮,我在 UWP 上没有这个问题,只是在 iOS 上,你有想法吗?
我已经尝试过 IsEnabled="False",但它忽略了它。
这是我的 AppShell 的图片
这是我的代码
<TabBar>
<ShellContent x:Name="BureauShell" Title="Bureau" ContentTemplate="{DataTemplate local:ViewLogin}" Icon="office-desk.png"/>
<ShellContent x:Name="ServicesShell" Title="Services" ContentTemplate="{DataTemplate local:ViewMenu}" Icon="booking.png"/>
<ShellContent x:Name="PiecesShell" Title="Batiment" ContentTemplate="{DataTemplate local:ViewChat}" Icon="building.png" />
</TabBar>
可以通过调用 ShellNavigatingEventArgs 对象上的 Cancel 方法来取消导航。考虑在 AppShell.cs 中添加以下代码:
protected override void OnNavigating(ShellNavigatingEventArgs args)
{
base.OnNavigating(args);
if(args.Current!=null)
{
if (args.Target.Location.OriginalString == args.Current.Location.OriginalString)
{
//You could add more logic
Console.WriteLine("123");
args.Cancel();
}
}
}
使用上面的代码,如果导航在同一条路线上,则取消导航。您可以根据您的情况添加更多逻辑。
更多信息,您可以参考Shell导航
希望有帮助!