2016-01-18 6 views
0

Я работаю над приложением 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

Вы должны позвонить .ImageWithRenderingMode (UIImageRenderingMode.AlwaysOriginal) в UIImage, поэтому он не будет шаблоном.

У меня есть вспомогательный метод для этого.

public static UIImage GetOriginal(this UIImage image) => 
    image.ImageWithRenderingMode (UIImageRenderingMode.AlwaysOriginal); 
Смежные вопросы