C#AvaloniaUI实现图片读取与显示的两种方式
作者:BrightSoul
时间:2026-05-31
浏览:0
AvaloniaUI 实现图片读取与显示 在 AvaloniaUI 中,图片的读取与显示可以通过 Image 控件和 Bitmap 类实现。以下是一个完整的示例代码,展示如何从文件路径加载图片并显示在界面上。 创建 AvaloniaUI 项目 确保已安装 AvaloniaUI 模板。如果未安装,可以
AvaloniaUI 实现图片读取与显示
在 AvaloniaUI 中,图片的读取与显示可以通过 Image 控件和 Bitmap 类实现。以下是一个完整的示例代码,展示如何从文件路径加载图片并显示在界面上。

创建 AvaloniaUI 项目
确保已安装 AvaloniaUI 模板。如果未安装,可以通过以下命令安装:
dotnet new install Avalonia.Templates dotnet new avalonia.app -n AvaloniaImageDemo
修改主窗口代码
在 MainWindow.axaml 中定义 Image 控件:
实现图片加载逻辑
在 MainWindow.axaml.cs 中添加以下代码:
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;
}
}
}
从资源加载图片
如果图片嵌入到程序集中(如 Assets 文件夹),可通过以下方式加载:
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;
}
}
注意事项
- 文件路径需确保应用有访问权限。
- 图片格式需为 Avalonia 支持的格式(如 PNG、JPEG、BMP)。
- 异步加载大图片时建议使用
await避免阻塞 UI 线程。
以上代码实现了从文件系统选择图片并显示的功能,同时提供了从嵌入式资源加载的示例。
作者最新文章
索尼 Xperia 1 VIII / VII / VI 等手机获 Android 17 更新,新增桌面模式等功能
2026-09-08 16:44
加拿大留学监护声明书(IMM 5646)双页签署与公证核对指南
2026-09-03 15:02
在线PDF转图片教程:一键生成高清图片包
2026-09-03 12:04
Creo零基础入门:新建零件与第一次拉伸建模完整指南
2026-09-03 06:02
扫描件PDF转Word的在线操作步骤与编辑可行性判断
2026-09-02 18:39
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多


































