xamarin 页面标题未显示在内容页面上

wbgh16ku  于 2023-08-01  发布在  其他
关注(0)|答案(2)|浏览(109)

我设置了这个页面的导航栏,我的标题就这样消失了。但是有一个蓝条我可以导航回来。我是Xamarin表单的新手。我不知道它的名字,但它现在工作。我想在蓝色栏上显示页面标题,而不是导航栏。我的页面标题必须显示在图片上的空白处。我该怎么做?


Xaml:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
        xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
        xmlns:xct="http://xamarin.com/schemas/2020/toolkit"
        xmlns:local="clr-namespace:İdaServis.ViewModels"
        xmlns:renderers="clr-namespace:İdaServis.CustomRenderer"
        x:Class="İdaServis.View.PageName"
        Title="{Binding Title}"
        x:Name="Page"
        BackgroundColor="White">
 </ContentPage>

字符串
CS:

public PageName()
{
    InitializeComponent();
    NavigationPage.SetHasNavigationBar(this, false);
}

mi7gmzs6

mi7gmzs61#

我想在蓝色栏上显示页面标题,而不是导航栏。
如果你想在那个蓝色条上显示你的页面标题,请将NavigationPage.SetHasNavigationBar的第二个参数设置为true

public PageName()
{
    InitializeComponent();
    NavigationPage.SetHasNavigationBar(this, true);
}

字符串
然后您可以通过为Page添加代码Title="My Page"来设置页面的标题。如下所示:

<?xml version="1.0" encoding="utf-8" ?> 
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             Title="My Page"
             x:Class="MVVMApp.SecondPage">

   
</ContentPage>


当然,您也可以使用TitleView自定义它。
举例来说:

<?xml version="1.0" encoding="utf-8" ?> 
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             Title="My Page"
             x:Class="MVVMApp.SecondPage">

    <NavigationPage.TitleView>
        <Label  Text="custom TitleView----->"/>
    </NavigationPage.TitleView>
    <ContentPage.Content>
        <StackLayout>
            <Label Text="Welcome to secoend page"
                VerticalOptions="CenterAndExpand" 
                HorizontalOptions="CenterAndExpand" />

        </StackLayout>
    </ContentPage.Content>
</ContentPage>

5anewei6

5anewei62#

为了重现您的问题,我在官方示例FlyoutSample中添加了一个LoginPage
类顺序为:App.cs --> Login --> MainPage(FlyoutPage)
步骤如下:
1.在App.cs中,将MainPage = new FlyoutPageNavigation.MainPage ();替换为MainPage = new NavigationPage(new Login());

public class App : Application 
      {
            public App ()
            {
                  //MainPage = new FlyoutPageNavigation.MainPage ();
                  MainPage = new NavigationPage(new Login());

            }

  }

字符串
2.在页面Login.xaml.cs上,添加一个按钮以导航到MainPage(FlyoutPage)

public partial class Login : ContentPage 
{
    public Login()
    {
        InitializeComponent();
    }

    private void Button_Clicked(object sender, EventArgs e)
    {

        Navigation.PushAsync(new MainPage());// this will add another navigate bar

        // Navigation.PushModalAsync will not add the navigate bar
        //Navigation.PushModalAsync(new MainPage());
    }
}

注:

在方法Button_Clicked中,如果使用以下代码,则会在屏幕顶部添加一个导航栏。如果您使用的是FlyoutPage,则无需添加此导航栏。

Navigation.PushAsync(new MainPage());


因此,尝试使用Navigation.PushModalAsync代替:

Navigation.PushModalAsync(new MainPage());

相关问题