Tengo una aplicación XF simple (Archivo-> Nuevo proyecto) que no muestra el contenido de NavigationPage.TitleView para iOS. Android funciona bien. ¿Qué estoy haciendo mal?

El código fuente se puede encontrar aquí.

XAML

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:d="http://xamarin.com/schemas/2014/forms/design"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             mc:Ignorable="d"
             x:Class="SampleApp.MainPage">

    <NavigationPage.TitleView>
        <Grid BackgroundColor="Blue">
            <Grid.RowDefinitions>
                <RowDefinition Height="*" />
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*" />
            </Grid.ColumnDefinitions>
            <Label Grid.Row="0" Grid.Column="0"
                   TextColor="Black"
                   Text="Page Title" />
        </Grid>
    </NavigationPage.TitleView>

    <StackLayout>
        <!-- Place new controls here -->
        <Label Text="Welcome to Xamarin.Forms!" 
               HorizontalOptions="Center"
               VerticalOptions="CenterAndExpand" />
    </StackLayout>

</ContentPage>

Aquí está la salida ...

enter image description here

También probé un StackLayout, los mismos resultados ...

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:d="http://xamarin.com/schemas/2014/forms/design"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             mc:Ignorable="d"
             x:Class="SampleApp.MainPage">

    <NavigationPage.TitleView>
        <StackLayout BackgroundColor="Blue" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
            <Label Grid.Row="0" Grid.Column="0"
                   TextColor="Black"
                   Text="Page Title" />
        </StackLayout>
    </NavigationPage.TitleView>

    <StackLayout>
        <!-- Place new controls here -->
        <Label Text="Welcome to Xamarin.Forms!" 
               HorizontalOptions="Center"
               VerticalOptions="CenterAndExpand" />
    </StackLayout>

</ContentPage>
2
John Livermore 17 oct. 2019 a las 17:38

1 respuesta

La mejor respuesta

Como Jason mencionó en el comentario, NavigationPage.TitleView es parte de Navigation Bar en NavigationPage. Para personalizar el TitleView, primero debe crear un NavigationPage:

public App ()
{
  MainPage = new NavigationPage (new Page1());
}

Luego, configure el TitleView en ContentPage:

<NavigationPage.TitleView>
    <Label Text="Page Title" />
</NavigationPage.TitleView>

Consulte: Navegación jerárquica

1
Jack Hua 18 oct. 2019 a las 02:08