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
兩個可能的值:
DoNotAdjust
– 表示不應調整狀態列文字色彩。MatchNavigationBarTextLuminosity
– 表示狀態列文字色彩應該符合導覽列的亮度。
此外,GetStatusBarTextColorMode
方法可以用來擷取套用至 NavigationPage
的列舉目前值StatusBarTextColorMode
。
結果是可以調整 上的 NavigationPage
狀態列文字色彩,以符合導覽列的亮度。 在此範例中,狀態列文字色彩會隨著使用者在 和 Detail
頁面FlyoutPage
之間Flyout
切換而變更: