Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Эта платформа iOS используется для отображения заголовка страницы в виде большого NavigationPageзаголовка на панели навигации для устройств, использующих iOS 11 или более поздней версии. Большой заголовок выровнен по левому краю и использует более крупный шрифт и переходит к стандартному названию, так как пользователь начинает прокрутку содержимого, чтобы экран недвижимости эффективно использовался. Однако в альбомной ориентации заголовок возвращается в центр панели навигации для оптимизации макета содержимого. Он используется в XAML, задав NavigationPage.PrefersLargeTitles присоединенное свойство значением boolean :
<NavigationPage 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"
...
ios:NavigationPage.PrefersLargeTitles="true">
...
</NavigationPage>
Кроме того, его можно использовать из C# с помощью api fluent:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...
var navigationPage = new Xamarin.Forms.NavigationPage(new iOSLargeTitlePageCS());
navigationPage.On<iOS>().SetPrefersLargeTitles(true);
Метод NavigationPage.On<iOS> указывает, что эта платформа будет работать только в iOS. Метод NavigationPage.SetPrefersLargeTitle в Xamarin.Forms.PlatformConfiguration.iOSSpecific пространстве имен определяет, включены ли большие заголовки.
Если в стеке навигации включены NavigationPageбольшие заголовки, все страницы в стеке навигации будут отображать большие заголовки. Это поведение можно переопределить на страницах, задав Page.LargeTitleDisplay присоединенное свойство значением перечисления LargeTitleDisplayMode :
<ContentPage ...
xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
Title="Large Title"
ios:Page.LargeTitleDisplay="Never">
...
</ContentPage>
Кроме того, поведение страницы можно переопределить из C# с помощью api fluent:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...
public class iOSLargeTitlePageCS : ContentPage
{
public iOSLargeTitlePageCS(ICommand restore)
{
On<iOS>().SetLargeTitleDisplay(LargeTitleDisplayMode.Never);
...
}
...
}
Метод Page.On<iOS> указывает, что эта платформа будет работать только в iOS. Метод Page.SetLargeTitleDisplay в Xamarin.Forms.PlatformConfiguration.iOSSpecific пространстве имен управляет поведением большого заголовка в перечислении Page, LargeTitleDisplayMode предоставляющим три возможных значения:
Always— принудительно заставить панель навигации и размер шрифта использовать большой формат.Automatic— используйте тот же стиль (большой или маленький), что и предыдущий элемент в стеке навигации.Never— принудительное использование обычной панели навигации с небольшим форматом.
Кроме того, SetLargeTitleDisplay метод можно использовать для переключения значений перечисления путем вызова LargeTitleDisplay метода, который возвращает текущий LargeTitleDisplayMode:
switch (On<iOS>().LargeTitleDisplay())
{
case LargeTitleDisplayMode.Always:
On<iOS>().SetLargeTitleDisplay(LargeTitleDisplayMode.Automatic);
break;
case LargeTitleDisplayMode.Automatic:
On<iOS>().SetLargeTitleDisplay(LargeTitleDisplayMode.Never);
break;
case LargeTitleDisplayMode.Never:
On<iOS>().SetLargeTitleDisplay(LargeTitleDisplayMode.Always);
break;
}
Результатом является то, что к указанному LargeTitleDisplayMode объекту применяется Page, который управляет поведением большого заголовка:
