WPF中删除打开过的图片
在WPF中,当我们删除打开过的图片时,往往会遇到"...无法删除,文件正在被另一个进程使用"的异常。即使当前文件是打开后关闭过的也不行。
这个问题的原因很简单,是因为WPF的缓存策略导致图片被锁定了,解决的方式不是用默认的ImageSource的构造方法,改用如下方式:
ImageSource getImage(string file)
{
var bmp = new BitmapImage();
bmp.BeginInit();
bmp.CacheOption = BitmapCacheOption.OnLoad; //这一行很重要
bmp.UriSource = new Uri(file);
bmp.EndInit();
return bmp;
}
这种方式本身并没有什么问题,但今天发现了更简单的一个方法,只要一行代码即可:
BitmapFrame.Create(new Uri(file), BitmapCreateOptions.None, BitmapCacheOption.OnLoad);
这里记录一下,以后主要就用这种方式了。
转载于:https://www.cnblogs.com/lonelyxmas/p/7645721.html
WPF中删除打开过的图片相关推荐
- 计算机怎么删除表格,电脑中删除Excel2010表格多余图片的三种方法
为了让表格看起来更加直观,很多朋友都会在Excel中插入图片.那么,当我们大批量插入图片时,如果想要删除的话,应该怎么办呢?以下是系统城小编为您带来的电脑中删除Excel2010表格多余图片的三种方法 ...
- 在WPF中加载gif动态图片
向WPF中加载动态图片有很多种办法,下面介绍一种比较简单的办法. 右键项目,在管理程序包中添加XamlAnimatedGif包,进行安装. . 在设计文件中添加头文件XamlAnimatedGif的头 ...
- WPF中显示任意目录的图片或其他资源文件
最近在做一个WPF的抽奖程序,需要显示人员照片.做的时候把照片全都加到项目里了,作为内容,在ListBox或其他控件中绑定,可以正常显示.但人员照片需要经常添加修改的,总不能每次都重新编译项目吧.因此 ...
- WPF利用MediaFoundation打开摄像头捕捉图片
主要代码 以同步的方式获得帧 REM MediaFoundation的.net 类库 http://mfnet.sourceforge.net Imports MediaFoundation Impo ...
- VS2005中删除最近打开的项目和文件的记录
VS2005中删除最近打开的项目和文件的记录 VS2005中总是保留最近打开的项目和文件的记录,甚至是以删除的它也不删,-_-! 下面介绍几种删除的方法: 第一种:建立一个ba ...
- ubuntu中命令打开图片、文档、音乐、视频等
ubuntu中命令打开图片.文档.音乐.视频等 安装播放软件 sudo apt install libdvdnav4 libdvdread4 gstreamer1.0-plugins-bad gstr ...
- WPF 中动态创建和删除控件
WPF 中动态创建和删除控件 原文:WPF 中动态创建和删除控件 动态创建控件 1.容器控件.RegisterName("Name",要注册的控件) //注册控件 2.容器控件 ...
- [WPF]WPF中材质制作——图片和矢量图之争
如果要做下面这样的一个东西作为背景.你会如何做呢? 图1. 目标背景效果 方案一,用PS画出来.然后把这个PNG图片作为背景色.这个方案可以,但是如果想让这个线的颜色可配置呢?如何线的粗细不确定呢?无 ...
- win10照片查看器_图片打开方式中找不到Windows图片查看器怎么办
如何在电脑中使用默认的windows图片查看器来打开图片进行查看的?有时我们可能无法找到Windows图片查看器工具,接下来小编就与大家分享,一种简单的利用windows图片查看器查看图片的具体方法. ...
最新文章
- 【Linux】5_进程管理
- java线程睡眠分析,java线程睡眠有关问题
- 数据产品经理的5大阶段和6步作战模型
- 面试官:你给我画一下秒杀系统的架构图!
- 了解JavaScript中的prototype (实例)
- 带你一文看懂--应用层、传输层的协议,HTTP协议及实现,UDP和TCP的报文格式以及为什么3次握手和4次挥手
- Realm的入门使用
- 配置php错误导入文件,php 导入文件(逻辑处理)
- new delete 之placement new 和placement delete
- MySQL 管理工具:Navicat for MySQL 8.0.19 中文版(破解版)
- Drool学习记录(一) 概念、Helloworld
- ping tracert 用法
- 开式系统管径推荐选型_列管式换热器选型设计计算
- 如何做好手机APP测试?APP测试流程及解决方案
- 无刷直流电机matlab建模,基于MATLAB的无刷直流电机建模方法_郭丹蕊
- 【Sentieon】基因测序数据NGS二级分析加速软件模块介绍
- 数据组,请求组,职责,用户关系
- android生成图片不失真,Android的PdfRenderer类生成低质量图像
- Linux下更新git(亲测有效)
- C++::namespace
热门文章
- php 查询and or,php – SQL查询多个AND和OR不起作用
- java对hashmap迭代_Java:通过HashMap迭代,这样更有效率?
- usb大容量存储设备驱动_usb无法识别怎么办 如何解决usb识别故障【详细步骤】...
- 二叉树中的最大路径和
- c++ socket学习(1.6)
- strictmath_Java StrictMath ceil()方法与示例
- css中的node.js_在Node App中使用基本HTML,CSS和JavaScript
- JavaScript中的String()函数与示例
- 如何关掉Microsoft Office Click-to-Run服务
- 利用kali的msf提取汇编机器码(shellcode)