查看图像文件而不锁定它.(复制到内存?)

Ust*_*sta 4 c# wpf file-access windows-7-x64

我希望能够在不锁定文件的情况下打开/查看图像(.jpg).基本上我有一个程序,让用户选择一个将覆盖图片的图片.但问题是我显示的是被覆盖的图像.那么如何在不锁定的情况下加载图像呢?

这是我现在必须设置图像的代码

Image1.Source = new BitmapImage( new Uri( myFilePath ) ) ); 
Run Code Online (Sandbox Code Playgroud)

myFilePath等于"C:\ Users*\My Pictures\Sample.jpg"之类的字符串

Mar*_*cus 8

myBitmap.CacheOption = BitmapCacheOption.OnLoad是你正在寻找的线.它"在加载时将整个映像缓存到内存中.所有对图像数据的请求都从内存存储器中填充." 来自MSDN

像这样的东西:

BitmapImage bmi = new BitmapImage();
bmi.BeginInit();
bmi.UriSource = new Uri(myFilePath);
bmi.CacheOption = BitmapCacheOption.OnLoad;
bmi.EndInit();
Image1.Source = bmi;
Run Code Online (Sandbox Code Playgroud)

  • 确保将"PresentationCore"添加到项目的引用中,否则您将无法找到System.Windows.Media命名空间.使用System.Windows.Media.Imaging添加该引用添加后; 到项目的顶部.;) (2认同)