我正在开发一款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) =>{
};
但是它会将图像渲染到导航栏之外...由于低代表,无法发布截图。
如何才能使背景图像正确加载?第一个屏幕截图中的图像大小是正确的,但我无法弄清楚为什么它是纯蓝色。
答案 0 :(得分:0)
你必须在UIImage上调用.ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal),所以它不会是模板。
我有一个辅助方法。
public static UIImage GetOriginal(this UIImage image) =>
image.ImageWithRenderingMode (UIImageRenderingMode.AlwaysOriginal);