导航栏项目的奇怪图像行为

Strange image behaviour of Navigation Bar Item

我正在开发 xamarin mvvmcross 应用程序。 我将 LeftBarButtonItem 用于 open/close 弹出菜单,现在可以使用了。

但由于某些奇怪的原因,我无法正确加载图像。

NavigationItem.LeftBarButtonItem = new UIBarButtonItem (UIImage.FromBundle("menu-button"),UIBarButtonItemStyle.Plain , (s, e) =>{

};

这会将按钮显示为实心蓝色矩形:

但如果我之后调用它

NavigationItem.LeftBarButtonItem.SetBackgroundImage(UIImage.FromBundle("menu-button"),UIControlState.Normal,UIBarMetrics.Default);

它加载了图像,但在蓝色矩形的后面......全部像这样伸展:

我认为如果我将第一行更改为

就可以解决这个问题
NavigationItem.LeftBarButtonItem = new UIBarButtonItem ("",UIBarButtonItemStyle.Plain , (s, e) =>{

};

但随后它会在导航栏外呈现图像...无法post截图,因为代表率低。

如何才能正确加载背景图片?第一个截图中的图像大小是正确的,但我不明白为什么它是纯蓝色的。

您必须在 UIImage 上调用 .ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal),因此它不会是模板。

我有一个帮助方法。

public static UIImage GetOriginal(this UIImage image) => 
    image.ImageWithRenderingMode (UIImageRenderingMode.AlwaysOriginal);