5
respostas

Como alterar a cor da NavigationBar via XAML ou C#.

Bom dia! Precisaria alterar a cor de fundo da minha Navigation. Atualmente minha Navigation está da seguinte forma.

    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
        }

        private void btnReceber_Clicked(object sender, EventArgs e)
        {
            Navigation.PushAsync(new Views.ListViewReceberMaterial());

        }

        private void btnPre_Clicked(object sender, EventArgs e)
        {
            Navigation.PushAsync(new Views.ListViewPreCirurgia());
        }

        private void btnPos_Clicked(object sender, EventArgs e)
        {
            Navigation.PushAsync(new Views.ListViewPosCirurgia());
        }

        private void btnCme_Clicked(object sender, EventArgs e)
        {
            Navigation.PushAsync(new Views.ListViewCME());
        }

         private void btnSair_Clicked(object sender, EventArgs e)
        {

        }
    }

Porém o Background está renderizado com a cor azul padrão do Xamarin. Alguém tem alguma idéia de como alterar a cor, inserir uma imagem, centralizar o texto?

Flw..

5 respostas

--UP--

Olá, Everton!

Para inserir um ícone, você pode usar:

NavigationPage.SetTitleIcon (this, "image.png");

Com relação a mudança de cor de fundo, dê uma olhada na resposta desta thread do fórum do Xamarin, que definiu o tema do MainActivity do Android no arquivo Styles.xml dentro da pasta Android/Resources:

https://forums.xamarin.com/discussion/37657/how-to-change-the-nav-bar-background-color-on-android

//In this example it sets the action bar background color with a custom style
<resources>
 <!-- the theme applied to the application or activity -->
    <style name="CustomActionBarTheme"
           parent="@android:style/Theme.Holo.Light">
        <item name="android:actionBarStyle">@style/MyActionBar</item>
    </style>
 <!-- ActionBar styles -->
    <style name="MyActionBar"
           parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
        <item name="android:background">#A97946</item>
    </style> 
</resources>

Marcelo, beleza?

Mesmo com essa propriedade, não consegui renderizar a imagem

Everton, verifique se o nome da imagem e a extensão estão corretos (inclusive maiúsculas/minúsculas). E veja também se a imagem está na pasta Resource/Drawable do projeto Droid. Caso contrário, a imagem não será exibida e não será exibido nenhum erro.