Textfarbmodus der NavigationPage-Leiste unter iOS
Diese plattformspezifische Steuerung steuert, ob die Textfarbe der Statusleiste an die NavigationPage
Leuchtdichte der Navigationsleiste angepasst wird. Sie wird in XAML verwendet, indem sie die NavigationPage.StatusBarTextColorMode
angefügte Eigenschaft auf einen Wert der StatusBarTextColorMode
Aufzählung festlegt:
<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>
Alternativ kann sie mit der Fluent-API von C# genutzt werden:
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);
};
Die Methode NavigationPage.On<iOS>
gibt an, dass diese plattformspezifische Funktion nur unter iOS ausführbar ist. Die NavigationPage.SetStatusBarTextColorMode
Methode steuert im Xamarin.Forms.PlatformConfiguration.iOSSpecific
Namespace, ob die Textfarbe der Statusleiste an NavigationPage
die Leuchtdichte der Navigationsleiste angepasst wird, wobei die StatusBarTextColorMode
Enumeration zwei mögliche Werte bereitstellt:
DoNotAdjust
– gibt an, dass die Textfarbe der Statusleiste nicht angepasst werden soll.MatchNavigationBarTextLuminosity
– gibt an, dass die Textfarbe der Statusleiste mit der Leuchtdichte der Navigationsleiste übereinstimmen soll.
Darüber hinaus kann die GetStatusBarTextColorMode
-Methode verwendet werden, um den aktuellen Wert der StatusBarTextColorMode
-Enumeration abzurufen, die auf NavigationPage
angewendet wird.
Das Ergebnis ist, dass die Textfarbe der Statusleiste auf einer NavigationPage
Leiste an die Leuchtdichte der Navigationsleiste angepasst werden kann. In diesem Beispiel ändert sich die Textfarbe der Statusleiste, wenn der Benutzer zwischen den Flyout
Seiten Detail
einer FlyoutPage
: