Udostępnij za pośrednictwem


Przezroczystość paska nawigacji w systemie iOS

Ten specyficzny dla platformy systemu iOS służy do zmiany przezroczystości paska nawigacyjnego na NavigationPageobiekcie i jest używany w języku XAML przez ustawienie dołączonej NavigationPage.IsNavigationBarTranslucent właściwości na boolean wartość:

<NavigationPage ...
                xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
                BackgroundColor="Blue"
                ios:NavigationPage.IsNavigationBarTranslucent="true">
  ...
</NavigationPage>

Alternatywnie można go używać z poziomu języka C# przy użyciu płynnego interfejsu API:

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...

(App.Current.MainPage as Xamarin.Forms.NavigationPage).BackgroundColor = Color.Blue;
(App.Current.MainPage as Xamarin.Forms.NavigationPage).On<iOS>().EnableTranslucentNavigationBar();

Metoda NavigationPage.On<iOS> określa, że ta platforma będzie działać tylko w systemie iOS. Metoda NavigationPage.EnableTranslucentNavigationBar w Xamarin.Forms.PlatformConfiguration.iOSSpecific przestrzeni nazw służy do translucentnego paska nawigacyjnego. Ponadto NavigationPage klasa w Xamarin.Forms.PlatformConfiguration.iOSSpecific przestrzeni nazw ma również metodę DisableTranslucentNavigationBar , która przywraca pasek nawigacyjny do stanu domyślnego oraz metodę SetIsNavigationBarTranslucent , która może służyć do przełączania przezroczystości paska nawigacyjnego przez wywołanie IsNavigationBarTranslucent metody :

(App.Current.MainPage as Xamarin.Forms.NavigationPage)
  .On<iOS>()
  .SetIsNavigationBarTranslucent(!(App.Current.MainPage as Xamarin.Forms.NavigationPage).On<iOS>().IsNavigationBarTranslucent());

W rezultacie można zmienić przezroczystość paska nawigacyjnego:

Przezroczysty pasek nawigacyjny specyficzny dla platformy