iOS 上的 NavigationPage 栏半透明效果

此 .NET Multi-platform App UI (.NET MAUI) iOS 平台特定功能用于更改 NavigationPage 上导航栏的透明度,其使用方式是在 XAML 中将 NavigationPage.IsNavigationBarTranslucent 附加属性设置为 boolean 值:

<NavigationPage ...
                xmlns:ios="clr-namespace:Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific;assembly=Microsoft.Maui.Controls"
                BackgroundColor="Blue"
                ios:NavigationPage.IsNavigationBarTranslucent="true">
  ...
</NavigationPage>

或者,可以使用 Fluent API 从 C# 使用它:

using Microsoft.Maui.Controls.PlatformConfiguration;
using Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific;
...

(App.Current.MainPage as Microsoft.Maui.Controls.NavigationPage).BackgroundColor = Colors.Blue;
(App.Current.MainPage as Microsoft.maui.Controls.NavigationPage).On<iOS>().EnableTranslucentNavigationBar();

NavigationPage.On<iOS> 方法指定此平台特定功能将仅在 iOS 上运行。 Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific 命名空间中的 NavigationPage.EnableTranslucentNavigationBar 方法用于使导航栏变得半透明。 此外,Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific 命名空间中的 NavigationPage 类还包含将导航栏还原到其默认状态的 DisableTranslucentNavigationBar 方法,以及可用于通过调用 IsNavigationBarTranslucent 方法切换导航栏透明度的 SetIsNavigationBarTranslucent 方法:

(App.Current.MainPage as Microsoft.Maui.Controls.NavigationPage)
  .On<iOS>()
  .SetIsNavigationBarTranslucent(!(App.Current.MainPage as Microsoft.Maui.Controls.NavigationPage).On<iOS>().IsNavigationBarTranslucent());

结果是可以更改导航栏的透明度:

Translucent Navigation Bar Platform-Specific.