WPF中Image控件的Source屬性
阿新 • • 發佈:2019-03-09
source 原因 auto pan private files nbsp close .so 原文:WPF中Image控件的Source屬性
imgBook 是一個Image控件,在後臺代碼中我想給它指定Source的屬性。我先如下方式進行:
Uri uri = new Uri(strImagePath, UriKind.RelativeOrAbsolute);
imgBook.Source = new BitmapImage(uri);
strImagePath是圖片的絕對路徑。
在另一處代碼中我想把strImagePath指定的圖片刪掉,操作如下:
if (System.IO.File.Exists(strImagePath))
{
System.IO.File.Delete(strImagePath);
}
但是刪除操作報錯,原因是程序在使用圖片文件。
解決方法如下:
Stream m_ImageStream;
private BitmapImage GetImageSource(string strImagePath)
{
//m_ImageStream.Close();
//m_ImageStream.Dispose();
//m_ImageStream = null;
if (m_ImageStream != null)
{
m_ImageStream.Close();
m_ImageStream.Dispose();
}
BitmapImage image = new BitmapImage();
m_ImageStream = new FileStream(strImagePath, FileMode.Open);
image.BeginInit();
image.StreamSource = m_ImageStream;
image.EndInit();
return image;
}
其中m_ImageStream是一個全局的Stream變量,在刪除操作前關閉這個變量就不會再出錯了。
if (m_ImageStream != null)
{
m_ImageStream.Close();
m_ImageStream.Dispose();
}
if (System.IO.File.Exists(strImagePath))
{
System.IO.File.Delete(strImagePath);
}
WPF中Image控件的Source屬性