使用 Shell 时如何删除 ContentPage 的导航栏

How to remove the navigation bar of a ContentPage when using Shell

我设置了一个 registration/login 页面,我使用 shell 在它们之间导航,但我想删除 header(我不确定这是不是它的名字)

我试过添加

NavigationPage.HasNavigationBar="false"

这在我的登录页面中,但没有任何效果。可能是因为我的 xaml 页面没有定义为导航页面。

这是我的 Login.xaml

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:viewmodel="clr-namespace:Appointments.ViewModels"  
             x:DataType="viewmodel:RegLogViewModel"
             x:Class="Appointments.Views.RegisterPage"
             NavigationPage.HasNavigationBar="false">

    <ContentPage.BindingContext>
        <viewmodel:RegLogViewModel/>
    </ContentPage.BindingContext>

    <Grid
            RowDefinitions="130,300,*,70">


        <Label
            Grid.Row="0"
            Text="REGISTRATION"
            HorizontalOptions="Center"
            VerticalOptions="Center"
            FontSize="40"
            />

        <StackLayout
            Grid.Row="1">

            <Entry Placeholder="username" Text="{Binding Name}"/>
            <Entry Placeholder="email" Text="{Binding Email}"/>
            <Entry Placeholder="password" Text="{Binding Password}"/>
            <Entry Placeholder="confirm password" Text="{Binding PasswordConfirmation}"/>
            <Entry Placeholder="phone number" Text="{Binding Phone}"/>

            <StackLayout Orientation="Horizontal">
                <Label 
                    Text="This account is for a hairstylist"
                    FontSize="20"/>
                <Switch/>
            </StackLayout>

        </StackLayout>

        <Button
            Grid.Row="2"
            Text="Register"
            FontSize="Large"
            VerticalOptions="Center"
            HorizontalOptions="CenterAndExpand"
            CornerRadius="10"
            Padding="20,0"
            BackgroundColor="Aquamarine"
            Command="{Binding LoginCommand}"
            
            />

        <Label
            Grid.Row="3"
            Text="Already a user? Login"
            FontSize="20"
            TextDecorations="Underline"
            HorizontalOptions="Center"
            VerticalOptions="Center"
>

            <Label.GestureRecognizers>
                <TapGestureRecognizer Command="{Binding GoToLoginCommand}"/>
            </Label.GestureRecognizers>

        </Label>

    </Grid>

</ContentPage>

我猜你只需要 ContentPage 定义

并且我已经在我的 AppShell.xaml.cs 和我的 AppShell.xaml 中注册了一个到该页面的路由,我已经将 ShellContent 设置为实际页面,仅此而已。

由于您使用的是 Shell,您需要设置 Shell.NavBarIsVisible:

而不是设置附加属性 NavigationPage.HasNavigationBar
<ContentPage ...
       Shell.NavBarIsVisible="False"

相关问题