ios - iOS 上工具栏项中的图像是白色的(Xamarin 表单)
问题描述
嗨,我有 Xamarin Forms 项目,并且在 andorid 和 uwp 上的工具栏项目中工作正常,但在 iOS 上是白色图像。你能帮帮我吗?
我的xml代码:
ContentPage.ToolbarItems
ToolbarItem
Priority="0"
Order="Primary" Command="{Binding PrikaziInfoFilteriCommand}"
ToolbarItem.Icon
OnPlatform x:TypeArguments="FileImageSource"
OnPlatform.Android
FileImageSource File="greenifnromation.png"
OnPlatform.Android
OnPlatform.iOS
FileImageSource File="greenifnromation.png"
OnPlatform.iOS
OnPlatform.WinPhone
FileImageSource File="Assets/greenifnromation.png"
OnPlatform.WinPhone
OnPlatform
ToolbarItem.Icon
ToolbarItem
ToolbarItem Icon="{Binding ImageSourceKalendarPlusMinus}"
Priority="0"
Order="Primary" Command="{Binding PrikaziCommand}"
ToolbarItem
ContentPage.ToolbarItems
解决方案
默认情况下,iOS 在其 ToolbarItems 中具有白色色调,这就是它没有按照您想要的方式显示的原因。不幸的是,您将不得不创建一个 iOS NavigationRenderer。让它覆盖 NavigationPage,然后添加以下代码:
public override void PushViewController(UIViewController viewController, bool animated)
{
base.PushViewController(viewController, animated);
var currentPage = (this.Element as Xamarin.Forms.NavigationPage)?.CurrentPage;
if (this.NavigationBar == null || currentPage == null)
return;
var buttonItems = TopViewController.NavigationItem.RightBarButtonItems;
foreach (var button in buttonItems)
{
button.Image = button.Image.ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal);
button.TintColor = UIColor.Clear;
}
}
推荐阅读
- c# - Roslyn - CodeAnalysis.MsBuild - 如何打开项目?
- javascript - 如何在javascript中的反引号内执行for循环?
- python - 使用布尔值打印集合元素
- python - 自动增量字段的问题
- java - 找不到 org.geoserver:gs-wms:jar:2.5.2
- javascript - 使用 else if 语句重构组件
- mongodb - 合并不同集合的两个对象并在Mongodb中获取特定数据
- python - Spacy 标记器损失在训练时为零
- ruby-on-rails - 在rails中导入excel文件时如何在模型中传递参考ID
- javascript - 尽管元素存在,但量角器并未等待页面加载