我已经根据设置
定制了导航页面,以便通过导航栏获得图像。IsNavigationBarTranslucent="True"
它可以工作,但是当我从该页面导航时,按以下方式推入新页面
await Navigation.PushAsync(new MyChildPage());
导航遵循translucent
。我尝试更改此属性没有成功。基本上,我想在导航的第一页上保持透亮(我明白了),在秒页面上显示“不完整”的导航栏。
编辑:
我认为我必须使用DisableTranslucentNavigationBar
,但我不明白该怎么做。
我用于自定义NavigatioRenderer的代码是:
public class CustomNavigationRenderer : NavigationRenderer
{
public override void ViewDidLoad()
{
base.ViewDidLoad();
NavigationBar.SetBackgroundImage(new UIImage(), UIBarMetrics.Default);
NavigationBar.ShadowImage = new UIImage();
}
在使用时可以按我的意愿工作:
NavigationPage _myNav = new CustomNavigation(MyFirsNavPage);
导航是透明的,我放在MyFirsNavPage xaml页面上的图像显示为导航背景。
但是当我转到堆栈上的另一页时,导航仍然是半透明的。
我用
(this.Parent as Xamarin.Forms.NavigationPage).On<iOS>().DisableTranslucentNavigationBar();
恰好在推入SecondPage之前:导航现在显示,但带有白色背景(不适用于在styl上设置的常规NavigationPage BarBackgroundColor)
有帮助吗?