Udostępnij za pośrednictwem


Tryb kolorów tekstu paska nawigacji w systemie iOS

Ten specyficzny dla platformy określa, czy kolor tekstu paska stanu na obiekcie NavigationPage jest dostosowywany tak, aby był zgodny z jaskrawością paska nawigacyjnego. Jest on używany w języku XAML przez ustawienie dołączonej NavigationPage.StatusBarTextColorMode właściwości na wartość StatusBarTextColorMode wyliczenia:

<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>

Alternatywnie można go używać z poziomu języka C# przy użyciu płynnego interfejsu API:

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

Metoda NavigationPage.On<iOS> określa, że ta platforma będzie działać tylko w systemie iOS. Metoda NavigationPage.SetStatusBarTextColorMode w Xamarin.Forms.PlatformConfiguration.iOSSpecific przestrzeni nazw określa, czy kolor tekstu paska stanu na NavigationPage obiekcie jest dostosowywany w celu dopasowania do jasności paska nawigacyjnego, a StatusBarTextColorMode wyliczenie zapewnia dwie możliwe wartości:

  • DoNotAdjust — wskazuje, że nie należy dostosowywać koloru tekstu paska stanu.
  • MatchNavigationBarTextLuminosity — wskazuje, że kolor tekstu paska stanu powinien odpowiadać jaskrawości paska nawigacyjnego.

Ponadto GetStatusBarTextColorMode można użyć metody , aby pobrać bieżącą wartość StatusBarTextColorMode wyliczenia zastosowanego do klasy NavigationPage.

Wynikiem jest to, że kolor tekstu paska stanu na obiekcie NavigationPage można dostosować tak, aby był zgodny z jaskrawością paska nawigacyjnego. W tym przykładzie kolor tekstu paska stanu zmienia się, gdy użytkownik przełącza się między Flyout stronami i Detail elementu FlyoutPage:

Tryb kolorów tekstu paska stanu specyficzny dla platformy