MAUI怎么实现图片加载 MAUI Image控件使用方法

来源:这里教程网 时间:2026-02-21 17:39:59 作者:

MAUI 中图片加载主要靠 Image 控件,支持本地资源、嵌入式资源、网络地址和本地文件路径四种方式。关键在于正确设置

Source
属性,并注意平台差异和异步加载行为。

加载本地资源图片(推荐用于图标、静态图)

把图片放进

Resources/Images
文件夹(如
dotnet.png
),生成操作设为
MauiImage
。XAML 中直接用资源名引用:

<Image Source="dotnet.png" />

代码中也可这样写:

image.Source = "dotnet.png";
不需要写扩展名,MAUI 会自动匹配最佳格式(.png/.jpg/.svg 等) 支持多分辨率:按命名规则放
dotnet.png
dotnet@2x.png
,系统自动选
Android/iOS/macOS 都能识别,无需额外配置

加载网络图片(带自动缓存和占位图)

直接传 URL 字符串即可,MAUI 内置了基础缓存和错误处理:

<Image Source="https://example.com/logo.png" />

建议配合

Aspect
Background
提升体验:

Aspect="AspectFit"
:保持宽高比,完整显示
Aspect="AspectFill"
:填满区域,可能裁剪
Background="LightGray"
避免加载前白屏
可绑定
IsLoading
或用
Loaded
事件做加载状态提示

加载嵌入式资源或 Stream(适合动态生成/加密图)

若图片来自程序集资源(如打包在 .NET 类库中),需用

ImageSource.FromStream

var stream = GetType().Assembly.GetManifestResourceStream("MyApp.Resources.icon.svg");
image.Source = ImageSource.FromStream(() => stream);
确保资源的“生成操作”设为
EmbeddedResource
流必须可重复读取(某些压缩流只读一次,需缓存到 MemoryStream) SVG 需要启用
Microsoft.Maui.Controls.Compatibility
并注册渲染器(.NET 8+ 已原生支持部分 SVG)

加载本地文件路径(沙盒限制要注意)

仅限应用沙盒内路径(如

FileSystem.AppDataDirectory
下保存的图):

string path = Path.Combine(FileSystem.AppDataDirectory, "downloaded.jpg");
image.Source = ImageSource.FromFile(path);
iOS 和 Android 对外部路径访问严格,不能直接用
/sdcard/xxx
~/Documents
FileSystem.OpenAppPackageFileAsync
可读取安装包内的文件(如更新后替换的资源)
加载失败时
Image
默认不报错,建议监听
OnError
事件排查

基本上就这些。MAUI 的 Image 控件用法简洁,但要注意资源路径规则、平台适配和异步加载时机——不复杂但容易忽略。

相关推荐