导航栏项

时间:2016-01-18 13:50:33

标签: c# ios xamarin mono uibarbuttonitem

我正在开发一款xamarin mvvmcross应用。 我正在使用LeftBarButtonItem打开/关闭一个flyoutmenu,现在可以正常工作。

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

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) =>{

};

但是它会将图像渲染到导航栏之外...由于低代表,无法发布截图。

如何才能使背景图像正确加载?第一个屏幕截图中的图像大小是正确的,但我无法弄清楚为什么它是纯蓝色。

1 个答案:

答案 0 :(得分:0)

你必须在UIImage上调用.ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal),所以它不会是模板。

我有一个辅助方法。

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