You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET MAUI中Navigation.TitleView内容无法居中的问题求助

解决MAUI中TitleView内容无法居中的问题

你遇到的问题根源在于TitleView内的Grid默认没有占据导航栏的全部可用宽度,导致Label的HorizontalOptions="Center"仅在Grid自身的窄范围内生效,而非整个导航栏宽度。

只需给TitleView里的Grid添加两个关键属性即可解决:

  • HorizontalOptions="FillAndExpand":让Grid填满导航栏的整个宽度
  • ColumnDefinitions="*":显式设置单列占满所有可用空间(可选,但能消除布局歧义)

修改后的MainPage 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="TitleView.MainPage">
    <NavigationPage.TitleView>
        <!-- 新增HorizontalOptions和ColumnDefinitions属性 -->
        <Grid Padding="0,0,0,0" 
              BackgroundColor="LightGray"
              HorizontalOptions="FillAndExpand"
              ColumnDefinitions="*">
            <Label Text="Custom Title View"
                   VerticalOptions="Center"
                   HorizontalOptions="Center"
                   FontAttributes="Bold"
                   FontSize="18"/>
        </Grid>
    </NavigationPage.TitleView>
    <!-- 下方原有内容保持不变 -->
    <ScrollView>
        <VerticalStackLayout
            Padding="30,0"
            Spacing="25">
            <Image
                Source="dotnet_bot.png"
                HeightRequest="185"
                Aspect="AspectFit"
                SemanticProperties.Description="dot net bot in a hovercraft number nine" />

            <Label
                Text="Hello, World!"
                Style="{StaticResource Headline}"
                SemanticProperties.HeadingLevel="Level1" />

            <Label
                Text="Welcome to &#10;.NET Multi-platform App UI"
                Style="{StaticResource SubHeadline}"
                SemanticProperties.HeadingLevel="Level2"
                SemanticProperties.Description="Welcome to dot net Multi platform App U I" />

            <Button
                x:Name="CounterBtn"
                Text="Click me" 
                SemanticProperties.Hint="Counts the number of times you click"
                Clicked="OnCounterClicked"
                HorizontalOptions="Fill" />
        </VerticalStackLayout>
    </ScrollView>
</ContentPage>

如果后续页面出现返回按钮(如从其他页面导航返回),可以调整Grid的列布局来平衡左右空间,但在当前无返回按钮的场景下,上述修改已足够让Label在整个导航栏居中。

内容的提问来源于stack exchange,提问作者user3017691

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 10:25:14