Sdílet prostřednictvím


Průsvitnost panelu NavigationPage v iOSu

Tato platforma pro iOS se používá ke změně průhlednosti navigačního panelu na objektu NavigationPagea využívá se v XAML nastavením NavigationPage.IsNavigationBarTranslucent připojené vlastnosti na boolean hodnotu:

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

Alternativně ho můžete využívat z jazyka C# pomocí rozhraní FLUENT 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> určuje, že se tato platforma bude spouštět pouze v iOSu. Metoda NavigationPage.EnableTranslucentNavigationBar v Xamarin.Forms.PlatformConfiguration.iOSSpecific oboru názvů slouží k tomu, aby navigační panel byl průsvitný. Třída v Xamarin.Forms.PlatformConfiguration.iOSSpecific oboru názvů má také metoduDisableTranslucentNavigationBar, která obnoví navigační panel do výchozího stavu a metoduSetIsNavigationBarTranslucent, NavigationPage která se dá použít k přepnutí průhlednosti navigačního panelu IsNavigationBarTranslucent voláním metody:

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

Výsledkem je, že průhlednost navigačního panelu se dá změnit:

Průsvitná platforma navigačního panelu