iOS 上 NavigationPage 栏半透明
此 iOS 平台特定功能可用于更改 NavigationPage
上导航栏的透明度,并在 XAML 中通过将 NavigationPage.IsNavigationBarTranslucent
附加属性设置为 boolean
值来使用:
<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());
结果是可以更改导航栏的透明度: