2017-02-13 2 views
0

Я хочу добавить логотип в середине панели навигации, как это:Добавить логотип в середине панели навигации?

<ContentPage.ToolbarItems> 
    <ToolbarItem Icon="logo.png" Activated="RefButtonClicked"></ToolbarItem> 
</ContentPage.ToolbarItems> 

Я также попытался это:

var cancelItem = new ToolbarItem 
{ 
    Text = "Cancel", 
    Icon = "tabalilogo.png", 
    Order = ToolbarItemOrder.Secondary 
}; 

Все, что я попытался расположен логотип на правой стороне навигации бар. Как я могу сосредоточить его?

+0

Я думаю, что ваш вопрос для android. Кажется, это невозможно, если вы не отключите панель инструментов и не создадите свой собственный. У меня было аналогичное требование, и я закончил делать пользовательскую панель инструментов – batmaci

+0

@batmaci, можете ли вы дать мне инструкцию или ссылку, потому что я никогда не делал пользовательский рендеринг раньше? –

+1

Я не имею в виду пользовательский рендерер, но настраиваемая панель инструментов. Я даю вам ответ. – batmaci

ответ

1

Я не уверен, что это можно реализовать с помощью существующей панели инструментов, но у меня было аналогичное требование, и я не мог понять, как добиться использования панели инструментов xamarin на странице навигации. поэтому я решил использовать модальную страницу, и я отключил навигационную страницу в коде с приведенной ниже строкой кода.

NavigationPage.SetHasNavigationBar(this, false); 

Я использую XAML и я создал собственный навигатор с AbsoluteLayout ниже

<AbsoluteLayout x:Name="slToolbar" Grid.Row="0" > 
     <Button x:Name="Cancel" BackgroundColor="#ADD8E6" Image="cancel.png" Command="{Binding CancelClick}" AbsoluteLayout.LayoutFlags="PositionProportional"> 
      <AbsoluteLayout.LayoutBounds> 
      <OnPlatform x:TypeArguments="Rectangle" iOS="0, .5, 36, 36" Android="0, .5, 36, 36" WinPhone="0, .5, 50, 50" /> 
      </AbsoluteLayout.LayoutBounds> 
     </Button> 


     <StackLayout Orientation="Horizontal" AbsoluteLayout.LayoutFlags="PositionProportional"> 
      <AbsoluteLayout.LayoutBounds> 
      <OnPlatform x:TypeArguments="Rectangle" iOS="1,.5,110,50" Android="1,.5,50,36" WinPhone="1,.5,110,50" /> 
      </AbsoluteLayout.LayoutBounds> 


      <ContentView > 
      <OnPlatform x:TypeArguments="View"> 
       <OnPlatform.iOS> 
       <Button x:Name="NewIOS" BackgroundColor="#ADD8E6" Image="ic_add.png" Command="{Binding AddNew}" ></Button> 
       </OnPlatform.iOS> 
       <OnPlatform.WinPhone> 
       <Button x:Name="NewWP" BackgroundColor="#ADD8E6" Command="{Binding AddNew}" Image="ic_add.png"/> 
       </OnPlatform.WinPhone> 
      </OnPlatform> 
      </ContentView> 


      <Button x:Name="btnSave" BackgroundColor="#ADD8E6" Image="check.png" Command="{Binding SaveClick}" HorizontalOptions="End" ></Button> 
     </StackLayout> 
     </AbsoluteLayout> 

этот код будет производить что-то, как показано ниже. У меня есть значки в углах, но, безусловно, они могут быть размещены в любом месте. Я использовал значок отмены вместо кнопки «Назад». Конечно, в этом случае вам нужно обратиться к кнопке возврата (кнопка отмены), щелкнув сами. снимок экрана ниже из приложения uwp, но на Android и ios я получаю аналогичные результаты.

enter image description here

+0

Я понял, что вы имели в виду, я попробую это –

+1

Ожидаете ли вы, как это будет работать с вкладкой? –

+0

@AhmedSayed Onn мой проект андроида, я предпочитаю использовать боковое меню, но на UWP я использую вкладку, и это выглядит хорошо для меня. Я не думаю, что это ничем не отличается от панели инструментов по умолчанию XF. Представьте вместо кнопки X слева, у вас есть кнопка возврата в виде стрелки. – batmaci