我正在寻找将 BackgroundImage 设置为 NavigationPage Xamarin.Forms 应用程序中的 NavBar,但我找不到答案。有人知道怎么做吗?我可以更改颜色属性,但我需要顶部栏中的公司 Logo 。
最佳答案
由于 Xamarin.Forms 框架不支持它,因此您需要为 NavigationBar 创建一个自定义渲染器(据我所知,要渲染的类是 NavigationRenderer 或 导航页面渲染器)。
然后在 android 的渲染类中添加一个可绘制图像,在 iOS 中将 UIImage 添加到顶部栏。
编辑 - 我想到了另一种解决方案 - 不使用自定义渲染,您可以通过删除现有栏来实现此目的,方法是在每个页面中设置以下命令:
NavigationPage.SetHasNavigationBar(this, false)
并创建一个包裹在网格中的自定义导航栏,它应该看起来像这样:
<Grid>
<Image Source="BackgroundImage.png"/> <!-- This should fill the grid -->
<Image Source="back_button" HorizontalOptions="StartAndExpand" Aspect="AspectFit" >
<Image.GestureRecognizers>
<TapGestureRecognizer Command="{Binding NavigateBackCommand}"/>
</Image.GestureRecognizers>
</Image>
</Grid>
关于xamarin - 如何在 Xamarin 表单中将背景图像设置为导航页面栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30806780/