所以当我把一个页面推到另一个页面上时:
Shell.Current.Navigation.PushAsync(new XampelPage());
是否有可能在新页面中看到推送它的页面?例如,如果背景是透明的,有没有办法在背景中显示它?
我非常怀疑如果你推送另一个页面并将其背景色设置为透明,你是否可以看到另一个页面。
你可以使用网格或绝对布局的页面来实现这一点。这些布局允许你"堆叠">
组件然后添加新视图作为子视图,并开始形成不同的图层。它就像一个页面中的对话框。
首先,对于Shell堆栈,当从Shell可视化层次结构导航到路由时,不会创建导航堆栈。但是,当导航到一个不在Shell可视层次结构中的页面时,将创建一个导航堆栈。
是否有可能在新页面中看到将其推到那里的页面?例如,如果背景是透明的,有没有办法在背景中显示它?
你可以尝试使用CarouselView来模拟。有关CarouselView的更多信息,请参阅下面的链接。https://learn.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/carouselview/interaction
您可以使用Modal页面来完成此操作。在您要导航到的页面中,设置属性Shell.PressentationMode="ModalAnimated"
。下面是在样式中设置该属性的示例:
<Style TargetType="base:BaseModalPage" ApplyToDerivedTypes="True"> <!-- Just a custom Page Type I created -->
<Setter Property="BackgroundColor" Value="{StaticResource BackgroundTranslucentColor}" />
<Setter Property="Padding" Value="{StaticResource ModalPaddingThickness}" />
<Setter Property="Shell.PresentationMode" Value="ModalAnimated" />
</Style>
当你用Shell.Current.GoToAsync(...)
导航时,它将模态地推动堆栈,如果页面是半透明的,它将在它后面显示前一页。
这是一篇关于使用shell进行模式导航的博客文章:https://devblogs.microsoft.com/xamarin/xamarin-forms-shell-quick-tip-modal-navigation/