iOS での NavigationPage バーの透明度
この iOS プラットフォーム固有設定は、NavigationPage
のナビゲーション バーの透明度を変更するために使われ、NavigationPage.IsNavigationBarTranslucent
添付プロパティを boolean
値に設定することで XAML で使用されます。
<NavigationPage ...
xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
BackgroundColor="Blue"
ios:NavigationPage.IsNavigationBarTranslucent="true">
...
</NavigationPage>
あるいは、Fluent API を使用して C# から使用することもできます。
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();
NavigationPage.On<iOS>
メソッドは、このプラットフォーム固有の機能が iOS でのみ実行されるように指定します。 Xamarin.Forms.PlatformConfiguration.iOSSpecific
名前空間の NavigationPage.EnableTranslucentNavigationBar
メソッドは、ナビゲーション バーを半透明にするために使用されます。 さらに、Xamarin.Forms.PlatformConfiguration.iOSSpecific
名前空間の NavigationPage
クラスには、ナビゲーション バーを既定の状態に復元する DisableTranslucentNavigationBar
メソッドと、IsNavigationBarTranslucent
メソッドを呼び出してナビゲーション バーの透明度を切り替えるために使用できる SetIsNavigationBarTranslucent
メソッドもあります。
(App.Current.MainPage as Xamarin.Forms.NavigationPage)
.On<iOS>()
.SetIsNavigationBarTranslucent(!(App.Current.MainPage as Xamarin.Forms.NavigationPage).On<iOS>().IsNavigationBarTranslucent());
その結果、ナビゲーション バーの透明度を変更できます。