Režim barev textu panelu NavigationPage v iOSu
Tato platforma určuje, jestli je barva NavigationPage
textu na stavovém řádku upravena tak, aby odpovídala světelnosti navigačního panelu. Využívá se v XAML nastavením NavigationPage.StatusBarTextColorMode
připojené vlastnosti na hodnotu výčtu 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>
Alternativně ho můžete využívat z jazyka C# pomocí rozhraní FLUENT 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>
určuje, že se tato platforma bude spouštět pouze v iOSu. Metoda NavigationPage.SetStatusBarTextColorMode
v Xamarin.Forms.PlatformConfiguration.iOSSpecific
oboru názvů určuje, zda je barva textu stavového řádku na panelu NavigationPage
upravena tak, aby odpovídala světelnosti navigačního panelu, a StatusBarTextColorMode
výčet poskytuje dvě možné hodnoty:
DoNotAdjust
– označuje, že barva textu stavového řádku by neměla být upravena.MatchNavigationBarTextLuminosity
– označuje, že barva textu stavového řádku by měla odpovídat světelnosti navigačního panelu.
Kromě toho lze metodu GetStatusBarTextColorMode
použít k načtení aktuální hodnoty výčtu StatusBarTextColorMode
použitého na NavigationPage
.
Výsledkem je, že barvu textu stavového řádku lze NavigationPage
upravit tak, aby odpovídala světelnosti navigačního panelu. V tomto příkladu se barva textu stavového řádku změní, když uživatel přepne mezi Flyout
stránkami Detail
FlyoutPage
a :