Xamarin สร้าง Center NavigationPage title

Sep 30 2020

ฉันมีปัญหา. ฉันใช้ Navigation.PushAsync () ดังนั้นในหน้าที่สองของฉันฉันมีลูกศรย้อนกลับใน NavigationBar ตอนนี้ฉันต้องการเพิ่ม titleview ด้วยตรงกลางของ NavigationBar แต่มันไม่ได้อยู่ตรงกลางตรงกลาง แต่จะไปทางขวามากกว่าเพราะปุ่มย้อนกลับ

ฉันได้ลองตั้งค่าใน AbsoluteLayout แล้วดังนี้:

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

แต่ยังคงผลลัพธ์เหมือนเดิม :(

ฉันจะแก้ไขปัญหานี้ได้อย่างไร?

คำตอบ

ShubhamTyagi Sep 30 2020 at 20:06

ถอดปุ่มย้อนกลับ

<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();
}