Я создал проект, и в этом проекте я меняю значок значка меню гамбургера.
У меня есть решение в Android, но я думаю, что в iOS то же самое.
Вы должны создать пользовательский класс MasterDetailPageRenderer и изменить значок в функции OnLayout.
Project https://github.com/officialdoniald/Xamarin.Forms.CustomControls/blob/master/XamarinForms.CustomControls/XamarinForms.CustomControls.Android/CustomRenderer/MasterNavigationPageRenderer.cs
Android
[assembly: ExportRenderer(typeof(CustomMasterDetailPage), typeof(MasterNavigationPageRenderer))]
namespace XamarinForms.CustomControls.Droid.CustomRenderer
{
public class MasterNavigationPageRenderer : MasterDetailPageRenderer
{
private static Android.Support.V7.Widget.Toolbar GetToolbar() => (CrossCurrentActivity.Current?.Activity as MainActivity)?.FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
private Android.Support.V7.Widget.Toolbar toolbar;
public MasterNavigationPageRenderer() : base() { }
public MasterNavigationPageRenderer(Context context) : base(context) { }
public MasterNavigationPageRenderer(IntPtr a, JniHandleOwnership b) : base() { }
protected override void OnLayout(bool changed, int l, int t, int r, int b)
{
base.OnLayout(changed, l, t, r, b);
toolbar = GetToolbar();
if (toolbar != null)
{
SetNavigationButton(Resource.Drawable.menu);
}
}
private void SetNavigationButton(int resourceID)
{
var icon = Forms.Context.GetDrawable(resourceID);
using (var drawable = ((BitmapDrawable)icon).Bitmap)
using (var bitmap = Bitmap.CreateScaledBitmap(drawable, 80, 80, false))
using (var newDrawable = new BitmapDrawable(Resources, bitmap))
{
toolbar.NavigationIcon = newDrawable;
}
}
}