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

.NET9 MAUI Android应用从平板启动时Image控件更新显示空白

.NET 9 MAUI Android应用中Image控件更新后显示白框问题

我在.NET 9的MAUI Android应用中遇到Image控件无法正常更新的问题,更新后原图像被白框替代。

相关代码

My命令实现

[RelayCommand]
public async Task My(object parameter)
{
    if (parameter is Border border)
    {
        // var tempImagePath = Path.Combine(FileSystem.AppDataDirectory, $"temp_image2.png");
        var tempImagePath = "/storage/7376-B000/films/clavier/clavier.mkv";
        var skImage = await GenerateThumbnailAsync(tempImagePath);
        SKData? skData = skImage?.Encode(SKEncodedImageFormat.Png, quality: 80);
        ThumbnailSKDatas.Add(skData);
        var image = ImageSource.FromStream(() => skData.AsStream());

        MainThread.BeginInvokeOnMainThread(async () =>
        {
            border.Content = new Image()
            {
                Source = image
            };

            await Task.Delay(1500);
        });
    }
}

GenerateThumbnailAsync方法实现

private async Task<SKImage?> GenerateThumbnailAsync(string file)
{
    var bitmap = await GetThumbnailBitmapFromVideoFile(file);
    return bitmap?.ToSKImage(); // 方法来自SkiaSharp.Views包
}

关键注意点

  • 最初尝试仅更新Image控件的Source属性(<Image Source={Binding Image}/>),但同样无效
  • skData对象数据有效:保存为PNG文件后可在Android Studio设备管理器中正常查看
  • 在Jetbrains Rider调试模式下运行应用时图像可见,但断开USB从平板直接启动应用后,触发My方法的按钮点击无法显示图像,不过skData数据仍有效(保存后可生成正确图像)
  • ThumbnailSKDatas是静态集合,用于避免skData被垃圾回收

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 14:52:35