我做了一个图片管理的小软件,把Listbox的ItemsSource跟ObservableCollection绑定,ObservableCollection里放的都是每张图片的信息,包括图片的路径,有个功能是删除图片(硬盘上删除),我从ObservableCollection里把那个图片的对象移除了,界面上也不显示那个图片了,可是删除的时候不能删除,报的错是图片正在被使用。 
求教怎么才能删除图片(图片被删之前是在界面上显示的)

解决方案 »

  1.   

    Bitmap 之类的类型在创建时会锁定对应的图片文件,阻止了例如修改之类的操作。ls给出的解决方法也是我所知最简单最有效的方式了。虽然Stackoverflow.com上面有人说使用using就好了,可是我试过并不是所有时候using都可以解决这个锁定的问题。
      

  2.   

    BitmapDecoder 每一种格式使用对应格式的解码器类,解码器需要文件流 这样就可以通过文件流来关闭文件,进而可以删除 可以参考System.Windows.Media.Imaging 命名空间下的各种格式编码器和解码器