Как исправить Xamarin.Формирует несоответствие цветов iOS на изображении заголовка и фоне заголовка, когда у Android нет этой проблемы

#xamarin.forms #view #colors #xamarin.android #xamarin.ios

Вопрос:

У меня есть изображение (размером с баннер), которое имеет цвет фона #F6D401 введите описание изображения здесьи должно перейти на верхнюю панель для брендинга.

в App.xaml я установил:

 <Application.Resources>    
    <ResourceDictionary>    
        <Color x:Key="Primary">#f6d401</Color>    
        <Color x:Key="TextColor">#5a5a5a</Color> 
 

Затем в AppShell.xaml

     <Shell.Resources>
    <ResourceDictionary>
        <Style x:Key="BaseStyle" TargetType="Element">
            <Setter Property="Shell.BackgroundColor" Value="{StaticResource Primary}" />
            <Setter Property="Shell.ForegroundColor" Value="{StaticResource Primary}" />
 

Затем на страницах:

     <Shell.TitleView>
    <Image
           HorizontalOptions="Center"
           VerticalOptions="Center" 
        Source="logo.png"  />
</Shell.TitleView>
 

На Android я получаю фоновый баннер и все цвета одного цвета, что именно то, что я хочу и чего ожидаю.

введите описание изображения здесь

однако в iOS цвета, похоже, не совпадают

введите описание изображения здесь

Я предполагаю, что где-то в iOS есть настройка по умолчанию, которая делает это, которую необходимо изменить.

Как сделать так, чтобы цвета баннеров и значков совпадали?

Ответ №1:

Пожалуйста, добавьте UINavigationBar.Appearance.Translucent = false; в AppDelegate.cs

  public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
    {
        //
        // This method is invoked when the application has loaded and is ready to run. In this 
        // method you should instantiate the window, load the UI into it and then make the window
        // visible.
        //
        // You have 17 seconds to return from this method, or iOS will terminate your application.
        //
       
        public override bool FinishedLaunching(UIApplication app, NSDictionary options)
        {
            UINavigationBar.Appearance.Translucent = false;
            global::Xamarin.Forms.Forms.Init();
            LoadApplication(new App());

            return base.FinishedLaunching(app, options);
        }
    }
 

Вот запущенный скриншот.

введите описание изображения здесь