我想在我的代码中设置image.source属性,如下所示:
Dim bi as new BitmapImage
bi.BeginInit()
bi.UriSource = new Uri("C:/test.png", uriKind.relativeOrAbsolute)
bi.EndInit()
img.Source = bi
多数工作,但问题是这会锁定文件并使我无法替换文件。
现在我的问题:是否有其他方法来设置image.source属性,以便我可以在它之后说出像file.close()之类的东西?
答案 0 :(得分:1)
为BitmapImage指定BitmapCacheOption.OnLoad:
Dim bi as new BitmapImage
bi.BeginInit()
bi.CacheOption = BitmapCacheOption.OnLoad;
bi.UriSource = new Uri("C:/test.png", uriKind.relativeOrAbsolute)
bi.EndInit()
img.Source = bi
或者您可以将图像文件内容读取到内存中的缓冲区,然后使用MemoryStream作为BitmapImage的StreamSource:
var imageBytes = File.ReadAllBytes("C:/test.png")
var stream = new MemoryStream(imageBytes);
var bi = new BitmapImage();
bi.BeginInit();
bi.StreamSource = stream;
bi.EndInit();