Share via


Translucency de barre NavigationPage sur iOS

Cette plateforme iOS spécifique est utilisée pour modifier la transparence de la barre de navigation sur un NavigationPagecode XAML et est consommée en XAML en définissant la NavigationPage.IsNavigationBarTranslucent propriété jointe sur une boolean valeur :

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

Elle peut également être consommée à partir de C# à l’aide de l’API Fluent :

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();

La NavigationPage.On<iOS> méthode spécifie que cette plateforme ne s’exécutera que sur iOS. La NavigationPage.EnableTranslucentNavigationBar méthode, dans l’espace Xamarin.Forms.PlatformConfiguration.iOSSpecific de noms, est utilisée pour rendre la barre de navigation translucide. En outre, la NavigationPage classe de l’espace Xamarin.Forms.PlatformConfiguration.iOSSpecific de noms a également une DisableTranslucentNavigationBar méthode qui restaure la barre de navigation à son état par défaut et une SetIsNavigationBarTranslucent méthode qui peut être utilisée pour activer la transparence de la barre de navigation en appelant la IsNavigationBarTranslucent méthode :

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

Le résultat est que la transparence de la barre de navigation peut être modifiée :

Barre de navigation translucide spécifique à la plateforme