C# AvaloniaUI动态显示图片的实现示例

 更新时间:2026年06月26日 08:48:49   作者:xiaoshuaishuai8  
本文主要介绍了C# AvaloniaUI动态显示图片的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在 AvaloniaUI 中,图片的读取与显示可以通过 Image 控件和 Bitmap 类实现。以下是一个完整的示例代码,展示如何从文件路径加载图片并显示在界面上。

创建 AvaloniaUI 项目

确保已安装 AvaloniaUI 模板。如果未安装,可以通过以下命令安装:

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

修改主窗口代码

MainWindow.axaml 中定义 Image 控件:

<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="AvaloniaUI 图片显示示例">
    <StackPanel>
        <Image x:Name="PreviewImage" Width="300" Height="300"/>
        <Button Content="选择图片" Click="OnLoadImageClick"/>
    </StackPanel>
</Window>

实现图片加载逻辑

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<IAssetLoader>();
    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 线程。

以上代码实现了从文件系统选择图片并显示的功能,同时提供了从嵌入式资源加载的示例。更多相关C# AvaloniaUI动态显示内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C# 汉明距离的算法实现

    C# 汉明距离的算法实现

    汉明距离是用来衡量两个等长字符串之间差异的度量指标,本文主要介绍了C# 汉明距离的算法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-02-02
  • C#实现语音播报功能的示例详解

    C#实现语音播报功能的示例详解

    这篇文章主要为大家详细介绍了如何使用C#实现语音播报功能,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下
    2024-02-02
  • 使用C#从零到完整实现的并发单词频率统计器

    使用C#从零到完整实现的并发单词频率统计器

    在工业自动化中,经常需要处理日志文件、设备数据记录,并统计关键字出现频率,所以本文给大家使用C#从零到完整实现了一个并发单词频率统计器,需要的朋友可以参考下
    2026-06-06
  • C#程序执行时间长查询速度慢解决方案

    C#程序执行时间长查询速度慢解决方案

    这篇文章主要介绍了C#程序执行时间长查询速度慢解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • C#实现基于加减按钮形式控制系统音量及静音的方法

    C#实现基于加减按钮形式控制系统音量及静音的方法

    这篇文章主要介绍了C#实现基于加减按钮形式控制系统音量及静音的方法,涉及C#引用user32.dll动态链接库操作系统音量的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • 使用C#实现读取系统配置文件的代码实例讲解

    使用C#实现读取系统配置文件的代码实例讲解

    这篇文章主要介绍了使用C#实现读取系统配置文件的代码实例,使用到了ConfigurationManager类,需要的朋友可以参考下
    2015-12-12
  • C#显式地实现接口成员的方法

    C#显式地实现接口成员的方法

    这篇文章主要介绍了C#显式地实现接口成员的方法,实例分析了C#接口的相关使用技巧,需要的朋友可以参考下
    2015-06-06
  • C#基础:Equals()与运算符==的区别分析

    C#基础:Equals()与运算符==的区别分析

    本篇文章是对c#中的Equals()与运算符==的区别进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C#学习笔记- 浅谈数组复制,排序,取段,元组

    C#学习笔记- 浅谈数组复制,排序,取段,元组

    下面小编就为大家带来一篇C#学习笔记- 浅谈数组复制,排序,取段,元组。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • C#实现最完整的文件和目录操作类实例

    C#实现最完整的文件和目录操作类实例

    这篇文章主要介绍了C#实现最完整的文件和目录操作类,涉及C#针对文件与目录的创建、获取、检测、删除等常用操作技巧,非常具有实用价值,需要的朋友可以参考下
    2015-05-05

最新评论