WPF中加载并使用图像资源

以我上篇文章中的工程为基础,一开始如下图:
在这里插入图片描述
首先右击“WpfApplication”——添加——新建文件夹,取名Image
然后右击“Image”文件夹——添加——现有项
然后随便找个图片,如下图:
在这里插入图片描述
然后更改一下MainWindow.xaml中的代码:

<Window x:Class="WpfApplication3.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApplication3"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Image Source="Image/desktop.jpg"></Image>
    </Grid>
</Window>

运行结果如下:
在这里插入图片描述
这个时候,我们回过来看看刚刚导入desktop.jpg的属性,如下图:
在这里插入图片描述
“生成操作”这一栏当前是“Resource”,这样的话我们的图片在编译之后就以二进制的方式保存在了exe文件里面,即使我们现在把Image文件夹下的desktop.jpg删掉,之后双击exe执行文件也能正常显示图片。

那现在我把“生成操作”改成“内容”,把“复制到输出目录”改成“始终复制”,然后编译,可以看到生成路径下多了一个“Image”文件夹,里面放着一个desktop.jpg,如果我们删除这个jpg,则双击exe执行文件就无法正常显示该图片背景。当然这样的方式有一个好处,就是如果我们想更换程序中使用的这张图片,直接在“Image”文件夹中替换该jpg就行,不过要保持名字一致,之后也不需要重新编译程序,直接双击运行就可以看到替换后的图片。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
WPF加载网络大图可以通过以下几个步骤实现。 首先,需要获取网络大图的URL。可以通过WebClient类或HttpWebRequest类发送GET请求,从服务器端获取网络大图的URL。 接下来,可以使用Image控件来显示网络大图。Image控件是WPF用于加载和显示图像的控件。通过设置Image控件的Source属性为网络大图的URL,就可以实现加载并显示网络大图。 通常情况下,直接将网络大图的URL赋值给Image控件的Source属性可能会遇到线程安全的问题。为了避免该问题,可以使用Dispatcher类将加载网络大图的操作转移到UI线程上进行。可以通过Dispatcher类的Invoke方法将加载网络大图的操作包装在一个委托,并用DispatcherPriority枚举指定优先级,然后在UI线程上调用该委托。 此外,为了提高加载网络大图的性能,可以将网络大图缓存到本地。可以使用System.IO命名空间下的FileStream类将网络大图以流的形式缓存到本地,然后将本地缓存的路径赋值给Image控件的Source属性。 当网络大图加载完成后,可以通过Image控件的Loaded事件或PropertyChanged事件来进行相关操作,例如调整显示大小、旋转、裁剪等。 最后,为了避免内存泄漏,应在不需要加载网络大图时及时释放相关资源,例如取消网络请求、关闭文件流、解除事件订阅等。 综上所述,通过获取网络大图的URL,使用Image控件加载并显示网络大图,并进行相关的线程安全处理和性能优化,可以在WPF实现加载网络大图的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GreenHandBruce

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值