如何在 Xamarin 表单中将背景图像设置为导航页面栏
How to Set backGround Image to Navigation Page Bar in Xamarin forms
我想在 NavigationPage Xamarin.Forms 应用程序中将 BackgroundImage 设置为 NavBar,但找不到答案。有人知道怎么做吗?我可以更改颜色 属性 但我需要顶部栏中的公司徽标。
由于 Xamarin.Forms 框架不支持它,因此您需要为 NavigationBar 创建一个自定义渲染器(据我所知 class 渲染是 NavigationRenderer 或 NavigationPageRenderer).
然后在渲染 class 中 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>
我想在 NavigationPage Xamarin.Forms 应用程序中将 BackgroundImage 设置为 NavBar,但找不到答案。有人知道怎么做吗?我可以更改颜色 属性 但我需要顶部栏中的公司徽标。
由于 Xamarin.Forms 框架不支持它,因此您需要为 NavigationBar 创建一个自定义渲染器(据我所知 class 渲染是 NavigationRenderer 或 NavigationPageRenderer).
然后在渲染 class 中 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>