共用方式為


iOS 上的 NavigationPage 列文字色彩模式

這個平臺特定的控件是否調整 上 NavigationPage 的狀態列文字色彩,以符合導覽列的亮度。 它會在 XAML 中取用,方法是將 NavigationPage.StatusBarTextColorMode 附加屬性設定為 列舉的值 StatusBarTextColorMode

<FlyoutPage xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
    x:Class="PlatformSpecifics.iOSStatusBarTextColorModePage">
    <FlyoutPage.Flyout>
        <ContentPage Title="Flyout Page Title" />
    </FlyoutPage.Flyout>
    <FlyoutPage.Detail>
        <NavigationPage BarBackgroundColor="Blue" BarTextColor="White"
                        ios:NavigationPage.StatusBarTextColorMode="MatchNavigationBarTextLuminosity">
            <x:Arguments>
                <ContentPage>
                    <Label Text="Slide the master page to see the status bar text color mode change." />
                </ContentPage>
            </x:Arguments>
        </NavigationPage>
    </FlyoutPage.Detail>
</FlyoutPage>

或者,您可以使用 Fluent API 從 C# 取用它:

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...

IsPresentedChanged += (sender, e) =>
{
    var flyoutPage = sender as FlyoutPage;
    if (flyoutPage.IsPresented)
        ((Xamarin.Forms.NavigationPage)flyoutPage.Detail)
          .On<iOS>()
          .SetStatusBarTextColorMode(StatusBarTextColorMode.DoNotAdjust);
    else
        ((Xamarin.Forms.NavigationPage)flyoutPage.Detail)
          .On<iOS>()
          .SetStatusBarTextColorMode(StatusBarTextColorMode.MatchNavigationBarTextLuminosity);
};

方法 NavigationPage.On<iOS> 會指定此平台專屬只會在iOS上執行。 在 NavigationPage.SetStatusBarTextColorMode 命名空間中 Xamarin.Forms.PlatformConfiguration.iOSSpecific ,方法會控制 上的 NavigationPage 狀態列文字色彩是否經過調整,以符合導覽列的亮度,並提供 StatusBarTextColorMode 兩個可能的值:

此外,GetStatusBarTextColorMode方法可以用來擷取套用至 NavigationPage的列舉目前值StatusBarTextColorMode

結果是可以調整 上的 NavigationPage 狀態列文字色彩,以符合導覽列的亮度。 在此範例中,狀態列文字色彩會隨著使用者在 和 Detail 頁面FlyoutPage之間Flyout切換而變更:

狀態列文字色彩模式平臺特定