XAML 我似乎无法隐藏导航栏与我的.net MAUI应用程序

wfsdck30  于 2023-10-14  发布在  .NET
关注(0)|答案(1)|浏览(154)

我正在使用.net MAUI来制作一个应用程序。我正在处理一个登录页面,它也是我用于导航的导航堆栈的根页面。以下是我的页面的XAML:

`<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="ProcedureScheduler.Pages.LoginPage"
             Shell.NavBarIsVisible="false">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition />
            <RowDefinition />
            <RowDefinition />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
        <VerticalStackLayout
            Grid.Column="1"
            Grid.Row="1">
            <Entry x:Name="UsernameEntry"
                HorizontalOptions="Center"/>
            <Label Text="Username"
                HorizontalOptions="Center"/>
            <Entry x:Name="PasswordEntry"
                HorizontalOptions="Center"
                IsPassword="true"/>
            <Label Text="Password" 
                HorizontalOptions="Center"/>
            <Button
                x:Name="LoginButton"
                Text="Login"
                HorizontalOptions="Center"
                Clicked="LoginButtonClicked" />
        </VerticalStackLayout>
    
    </Grid>
</ContentPage>`

下面是AppShell xaml:

`
<?xml version="1.0" encoding="UTF-8" ?>
<Shell
    x:Class="ProcedureScheduler.AppShell"
    xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:local="clr-namespace:ProcedureScheduler"
    xmlns:pages="clr-namespace:ProcedureScheduler.Pages">
</Shell>
`

如您所见,我尝试使用“Shell.NavBarIsVisible”属性,但似乎没有任何作用。我也尝试在我的应用程序的其他页面上使用它,也没有结果。下面是登录屏幕的图片:
A login screen with the navigation bar at the top

6ioyuze2

6ioyuze21#

从文档中禁用导航栏:
虽然Shell.NavBarIsVisible可以在子类Shell对象上设置,但它通常设置在任何希望使导航栏不可见的页面上。例如,下面的XAML演示如何禁用ContentPage中的导航栏。
因此,您需要将LoginPage集成到Shell应用程序中,您的AppShell.xaml应该如下所示:

<?xml version="1.0" encoding="UTF-8" ?>
<Shell
    x:Class="ProcedureScheduler.AppShell"
    xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:local="clr-namespace:ProcedureScheduler"
    xmlns:pages="clr-namespace:ProcedureScheduler.Pages">

    <ShellContent Title="LoginPage"                           
                  ContentTemplate="{DataTemplate Pages:LoginPage}" 
                  Route="LoginPage"/>

</Shell>

App.xaml.cs:

public partial class App : Application
{
      public App()
      {
            InitializeComponent();

            MainPage = new AppShell();
           //MainPage = new NavigationPage(new LoginPage());
      }
}

LoginPage.xaml中设置Shell.NavBarIsVisible=“false”:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="ProcedureScheduler.Pages.LoginPage"
             Shell.NavBarIsVisible="false">

 
</ContentPage>

输出:

相关问题