У меня есть приложение Xamarin Forms, и я хочу разместить стандартный (суб) заголовок на каждой странице. Подзаголовок будет содержать метку, которая будет изменяться для каждой страницы и необязательная кнопка «назад», и будет находиться чуть ниже заголовка приложения, которое содержит гамбургер меню и имя приложения.Подзаголовок приложения xamarin forms
Первоначально я создал «HeaderPage», который содержал макет стандартных элементов управления и все мои страницы, унаследованные от этой страницы. Я «спрятался» в ContentPage.Content поэтому страницы, которые унаследовали от HeaderPage может просто установить Content = установить HeaderPage Content
private ContentView _headerPageContent;
public new View Content
{
set { _headerPageContent.Content = value; }
}
и страницу ребенок просто должен был установить текст:
HeaderLabel = "Contact Us";
Это отлично работало до форм 2.1, где была удалена возможность маскировать ContentPage.Content.
В то время было рекомендовано использовать ContentPage с ControlTemplate с заголовком. Я исследовал этот путь, как и один из моих сотрудников, и мы оба отступили из-за сложности и дублирования кода, помещающего привязку на на каждую страницу.
Я думал о том, чтобы сделать заголовок просмотром или посмотреть, что потребуется, чтобы сделать его контролем.
На данный момент я выбрал простой путь и переименовал переменную «Содержимое» в «HeaderPageContent», поэтому все страницы, наследующие страницу заголовка, устанавливают HeaderPageContent вместо Content.
Кто-нибудь еще сделал что-то похожее на это? Что вы нашли?