Xamarin表单中心导航页面标题

问题描述

我有问题。我使用了Navigation.PushAsync(),所以现在在第二页上的NavigationBar中有一个后退箭头。现在,我也想在NavigationBar的中间添加一个titleview,但是由于后退按钮的缘故,它并没有在中间居中,而是在右边居中。

我已经试图像这样在AbsoluteLayout中设置它:

<NavigationPage.TitleView>
    <AbsoluteLayout>
        <Label Text="MyTitle" FontSize="20" AbsoluteLayout.LayoutBounds="0.5,0.5" AbsoluteLayout.LayoutFlags="PositionProportional" />
    </AbsoluteLayout>
</NavigationPage.TitleView>

但结果仍然相同:(

我该如何解决

解决方法

删除后退按钮

<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"
             NavigationPage.HasBackButton="False">

添加自定义图像并使用TapGesture(或者您可以使用FontAwesome之类的东西)

<AbsoluteLayout>
            <Image AbsoluteLayout.LayoutBounds="0,0.5" AbsoluteLayout.LayoutFlags="PositionProportional" WidthRequest="20" HeightRequest="20"
                   Source="arrow16">
                <Image.GestureRecognizers>
                    <TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped"/>
                </Image.GestureRecognizers>
            </Image>
            <Label Text="MyTitle" FontSize="20" AbsoluteLayout.LayoutBounds="0.5,0.5" AbsoluteLayout.LayoutFlags="PositionProportional" />
</AbsoluteLayout>

点击事件弹出页面

private async void TapGestureRecognizer_Tapped(object sender,EventArgs e)
{
   await Navigation.PopAsync();
}

enter image description here