C# AvaloniaUI中图片读取与显示的两种实现方法

作者:袖梨 2026-05-31

AvaloniaUI 实现图片读取与显示

AvaloniaUI框架提供了便捷的图片处理功能,开发者可以通过Image控件和Bitmap类实现本地及嵌入式图片的加载与展示。下面将详细介绍具体实现步骤。

C#AvaloniaUI实现图片读取与显示的两种方式

创建 AvaloniaUI 项目

首先需要确保开发环境已安装AvaloniaUI模板。若未安装,执行以下命令进行安装:

dotnet new install Avalonia.Templates
dotnet new avalonia.app -n AvaloniaImageDemo

修改主窗口代码

在项目主窗口文件中添加图片控件和按钮:

    
        
        
    

实现图片加载逻辑

为按钮添加点击事件处理程序,实现图片选择与加载功能:

using Avalonia;
using Avalonia.Controls;
using Avalonia.Input;
using Avalonia.Media.Imaging;
using Avalonia.Platform;
using System.IO;
using System.Threading.Tasks;

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private async void OnLoadImageClick(object sender, RoutedEventArgs e)
    {
        var dialog = new OpenFileDialog();
        dialog.Filters.Add(new FileDialogFilter { Name = "图片文件", Extensions = { "jpg", "png", "bmp" } });
        var result = await dialog.ShowAsync(this);

        if (result != null && result.Length > 0)
        {
            var filePath = result[0];
            await LoadImageAsync(filePath);
        }
    }

    private async Task LoadImageAsync(string filePath)
    {
        using (var stream = File.OpenRead(filePath))
        {
            var bitmap = new Bitmap(stream);
            PreviewImage.Source = bitmap;
        }
    }
}

从资源加载图片

对于嵌入程序集的资源图片,可通过资源加载器实现加载:

private void LoadEmbeddedImage()
{
    var assets = AvaloniaLocator.Current.GetService();
    using (var stream = assets.Open(new Uri("avares://AvaloniaImageDemo/Assets/sample.png")))
    {
        var bitmap = new Bitmap(stream);
        PreviewImage.Source = bitmap;
    }
}

注意事项

  1. 确保应用程序具有访问目标文件的权限
  2. 仅支持PNG、JPEG、BMP等标准图片格式
  3. 大尺寸图片建议使用异步加载方式避免界面卡顿

本文详细介绍了AvaloniaUI中实现图片加载的两种主要方式,帮助开发者快速掌握相关技术要点。

如需了解更多AvaloniaUI图像处理相关内容,可参考以下技术文档:

  1. C#调用halcon实现使用鼠标滚轮对图片进行缩放显示
  2. C# WPF ListBox 动态显示图片功能
  3. c#图片上传和显示的实现方法
  4. C#实现打开画图的同时载入图片、最大化显示画图窗体的方法
  5. C#将图片和字节流互相转换并显示到页面上

相关文章

精彩推荐