这是我的代码
ToolbarItems.Add(new ToolbarItem("User", "userAvatar.png", async () => {
await Navigation.PopToRootAsync();
}));
它不起作用。它是一个蒙面的单色图像,而不是颜色的png。
我正在尝试存档这样的东西......
有任何线索吗?
答案 0 :(得分:1)
我曾经对这个问题感到生气过(我的情况有点微妙,我有一个简单的彩色图标,并且想知道为什么黑色彩色图标会克服这个问题并不容易。
单色图标是iOS应用程序的默认行为,Xamarin.Forms实现了此行为。根据{{3}},您需要自定义渲染器才能在导航栏中显示彩色图标。
修改强>
根据this post,您必须为自定义渲染器中的相应图像设置UIImageRenderingMode
image = image.ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal);
使用this post中的渲染器实现,它应该是
行中的内容using UIKit;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;
[assembly: ExportRenderer(typeof(TabbedPage), typeof(MyProject.iOS.Renderers.IosMainMenuRenderer))]
namespace MyProject.iOS.Renderers {
public class IosMainMenuRenderer : TabbedRenderer {
public override void ViewWillAppear(bool animated)
{
base.ViewWillAppear(animated);
var items = TabBar.Items;
for (var i = 0; i < items.Length; i++) {
items[i].Image = items[i].ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal);
items[i].SelectedImage = items[i].SelectedImage.ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal);
}
}
}
}
但我没有测试过这个!
答案 1 :(得分:0)
最简单的方法是不使用工具栏,而是在导航到该页面时将此页面的类型设置为模态(使用Navigation.PushModal())。并添加一个水平LinearLayout作为工具栏。
答案 2 :(得分:0)
对于我所有导航页面右侧的彩色徽标,我使用了此自定义渲染器:
switch(bits) { ... }