Xamarin:更改页面之间的导航属性

时间:2018-11-20 14:20:15

标签: c# xamarin xamarin.forms navigation

我已经根据设置

定制了导航页面,以便通过导航栏获得图像。
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)

有帮助吗?

0 个答案:

没有答案