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

.NET MAUI工具栏图片无法始终居中的解决方案咨询

解决.NET MAUI工具栏图片居中偏移问题

当页面显示返回箭头时,默认的TitleView会被返回按钮挤占空间,导致内部图片无法保持全局居中。你可以通过以下方式强制图片始终处于工具栏正中间:

核心修改:用Grid容器包裹图片

将原有的Shell.TitleView内容放到一个占满水平空间的Grid中,让图片在Grid内居中,这样不管左右是否有返回按钮或工具栏项,图片都会保持整个导航栏的正中间位置:

<ContentPage.ToolbarItems>
    <ToolbarItem Clicked="showTutorial">
        <ToolbarItem.IconImageSource>
            <FontImageSource
                Glyph="&#x3F;"
                Color="LightBlue"
                Size="20"/>
        </ToolbarItem.IconImageSource>
    </ToolbarItem>
</ContentPage.ToolbarItems>
<Shell.TitleView>
    <!-- 用Grid填充整个导航栏水平空间 -->
    <Grid HorizontalOptions="FillAndExpand">
        <Image Source="dotnet_bot.png" 
               HeightRequest="35"
               WidthRequest="65"
               HorizontalOptions="Center"
               VerticalOptions="Center"
               Aspect="AspectFit"/>
    </Grid>
</Shell.TitleView>

原理说明

  • Grid的HorizontalOptions="FillAndExpand"会让它占据整个导航栏的可用水平宽度,不受返回按钮、工具栏项的空间限制。
  • 图片的HorizontalOptions="Center"会让它在Grid的正中间显示,也就是整个工具栏的绝对居中位置,不会因为左右元素的出现而偏移。

全局统一设置(可选)

如果希望所有页面的工具栏图片都保持这个居中逻辑,可以在AppShell.xaml中设置全局的Shell.TitleView,避免每个页面重复编写布局:

<Shell ...>
    <Shell.TitleView>
        <Grid HorizontalOptions="FillAndExpand">
            <Image x:Name="GlobalTitleImage"
                   HeightRequest="35"
                   WidthRequest="65"
                   HorizontalOptions="Center"
                   VerticalOptions="Center"
                   Aspect="AspectFit"/>
        </Grid>
    </Shell.TitleView>

    <!-- 你的页面路由定义 -->
</Shell>

之后在各个页面中可以通过代码修改GlobalTitleImage的Source属性,实现不同页面显示不同图片但保持居中的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 14:47:18