C#学习教程:XamarinForms改变导航栏的背景颜色我有一个继承自NavigationPage的自定义导航栏类??,具有可绑定属性和构造函数来设置导航栏的颜色。据我了解,导航栏上方有一个默认背景(黑色)Xamarin.Forms导航背景。我可以使用SetColor()方法设置背景颜色(见下文)。但是,它留下了一条黑线,这是导航栏(iOS)的背景,如图所示。图片链接现在,我正在尝试将iOS导航栏背景颜色设置为白色或透明。我花了很多时间,但没有任何效果。有人可以协助如何将背景设置为白色。//PCL类publicclassCustomNavigationalPage:NavigationPage{publicstaticreadonlyBindablePropertyBarBgColorProperty=BindableProperty。创建(p=>p.BarBackgroundColorR,null);publicUIColorBarBackgroundColorR{get{return(UIColor)base.GetValue(BarBgColorProperty);}set{base.SetValue(BarBgColorProperty,value);}}publicNavigationalPageCustomized():base(){SetColor();}voidSetColor(){BarBackgroundColor=Color.Transparent;BarTextColor=Color.Blue;}}导航栏渲染器类:[assembly:ExportRenderer(typeof(CustomNavigationalPage),typeof(CustomNavigationPageRenderer))]namespaceproject.iOS{publicclassCustomNavigationPageRenderer:NavigationRenderer{publicCustomNavigationPageRenderer(){//UINavigationBar.Appearance.SetBackgroundImage(UIImage.FromFile("navbg.png"),UIBarMetrics.Default);}protectedoverridevoidOnElementChanged(VisualElementChangedEventArgsargs){base.OnElementChanged(args);变量nb=(NavigationalPageCustomized)元素;if(nb!=null){nb.BarBackgroundColorR=UIColor.White;}}}}在Xamarin.forms的PCL中尝试此代码在App.xaml.cs的构造函数中更改以下代码请尝试以下代码。祝你好运[assembly:ExportRenderer(typeof(CustomNavigationalPage),typeof(CustomNavigationPageRenderer))]namespaceproject.iOS{publicclassCustomNavigationPageRenderer:NavigationRenderer{publicCustomNavigationPageRenderer(){}publicoverridevoidViewDidbaseLoad(Load)D(Load)/Backgroundimagethis.NavigationBar.BarTintColor=UIColor.FromPatternImage(UIImage.FromFile("AnyResourceImage.png"));//你想要的颜色this.NavigationBar.BarTintColor=UIColor.Red;//右侧项目颜色this.NavigationBar.TopItem.RightBarButtonItem.TintColor=UIColor.FromPatternImage(UIImage.FromFile("AnyResourceImage.png"));//左项颜色this.NavigationBar.TopItem.LeftBarButtonItem.TintColor=UIColor.Black;}}}//注意:请删除您在表单共享或pcl项目中设置的任何背景颜色。此类中的提示>CustomNavigationalPage这过去需要自定义渲染器,但在XF1.3中不再需要。NavigationPage现在具有BarBackgroundColor和BarTextColor属性,它们似乎工作正常。不幸的是,如果没有自定义渲染器(我已经找到),就无法更改字体。您可以通过在全局App.xaml文件中设置它来更改您自己的颜色对我来说这有效:(App.Current.MainPageasNavigationPage).BarBackgroundColor=Color.FromHex("#4388CC");此代码用于ViewModel的构造函数。希望这对你也有用。NavigationController.NavigationBar.TitleTextAttributes=newUIStringAttributes(){ForegroundColor=UIColor.White};以上就是C#学习教程:Xamarin形成改变导航栏背景色的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注—本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
