1. 程式人生 > >WPF中Image控件的Source屬性

WPF中Image控件的Source屬性

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屬性