.NET MAUI(Mac版VS):iPhone模拟器无法加载图片资源问题
.NET MAUI TabBar图标导致应用黑屏问题排查
我近期刚开始学习.NET MAUI,若问题较为基础还请见谅。
以下是我的原始AppShell.xaml代码:
<?xml version="1.0" encoding="UTF-8" ?> <Shell x:Class="Walmo_e_wallet_u.AppShell" xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:Walmo_e_wallet_u" xmlns:pages="clr-namespace:Walmo_e_wallet_u.Pages" Shell.FlyoutBehavior="Disabled"> <TabBar> <Tab Title="Home"> <ShellContent ContentTemplate="{DataTemplate pages:HomePage}" /> </Tab> <Tab Title="Chart"> <ShellContent ContentTemplate="{DataTemplate pages:ChartPage}" /> </Tab> <Tab Title="QR"> <ShellContent ContentTemplate="{DataTemplate pages:QrPage}" /> </Tab> <Tab Title="Notification"> <ShellContent ContentTemplate="{DataTemplate pages:NotificationPage}" /> </Tab> <Tab Title="Wallet"> <ShellContent ContentTemplate="{DataTemplate pages:WalletPage}" /> </Tab> </TabBar> </Shell>
我已将图片拖拽至项目的image文件夹中:
之后我尝试给Tab设置图标,修改后的TabBar代码如下:
<TabBar> <Tab Title="Home" Icon="home.png"> <ShellContent ContentTemplate="{DataTemplate pages:HomePage}" /> </Tab> <Tab Title="Chart" Icon="chart.png"> <ShellContent ContentTemplate="{DataTemplate pages:ChartPage}" /> </Tab> <Tab Title="QR" Icon="qr.png"> <ShellContent ContentTemplate="{DataTemplate pages:QrPage}" /> </Tab> <Tab Title="Notification" Icon="notification.png"> <ShellContent ContentTemplate="{DataTemplate pages:NotificationPage}" /> </Tab> <Tab Title="Wallet" Icon="wallet.png"> <ShellContent ContentTemplate="{DataTemplate pages:WalletPage}" /> </Tab> </TabBar>
但构建运行模拟器后屏幕黑屏且无报错信息,移除TabBar中的图标代码后应用可正常加载,请问我遗漏了什么?
问题排查与解决方法
- 检查图片的构建操作设置:右键点击
image文件夹中的每张图片,选择【属性】,确保构建操作设置为MauiImage,这是.NET MAUI识别图片资源的必要配置,未设置的话应用无法正确加载图片,可能导致黑屏。 - 确认图片路径是否正确:如果图片放在
image子文件夹中,图标路径需要写成image/home.png,而不是直接写home.png,否则MAUI无法找到对应资源。 - 验证图片格式与大小:确保图片是支持的格式(如PNG、JPG),且尺寸符合平台规范(通常移动端Tab图标建议使用24x24、36x36等适配不同DPI的尺寸,也可提供多分辨率图片并命名为
home@2x.png、home@3x.png格式),格式或尺寸异常可能导致加载失败。 - 清理项目并重新构建:有时候缓存会导致资源加载异常,可尝试清理项目(点击Visual Studio的【生成】→【清理解决方案】),然后删除bin和obj文件夹,再重新构建运行。
内容的提问来源于stack exchange,提问作者Tulon
相关产品推荐
相关产品推荐

