Режим цвета текста панели навигации в iOS
Эта платформа определяет, настраивается ли цвет текста строки состояния на 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>
Кроме того, его можно использовать из C# с помощью api fluent:
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
этом перечисление предоставляет два возможных значения:
DoNotAdjust
— указывает, что цвет текста строки состояния не должен быть изменен.MatchNavigationBarTextLuminosity
— указывает, что цвет текста строки состояния должен соответствовать светимости панели навигации.
Кроме того, GetStatusBarTextColorMode
метод можно использовать для получения текущего значения перечисления StatusBarTextColorMode
, применяемого к объекту NavigationPage
.
Результатом является то, что цвет текста строки состояния на панели NavigationPage
навигации можно настроить в соответствии с светимостью панели навигации. В этом примере цвет текста строки состояния изменяется, так как пользователь переключается между Flyout
страницами Detail
FlyoutPage
: