0

我正在尝试在 WPF 中显示图像。我用这个:

            Stream fs = File.Open(path, FileMode.Open);

            BitmapImage bmp = new BitmapImage();
            bmp.BeginInit();
            bmp.StreamSource = fs;
            bmp.EndInit();
            img.Source = bmp;
            fs.Close();

无论是否关闭流,这都不起作用。有什么作用:

            BitmapImage bmp = new BitmapImage(new Uri(path));
            img.Source = bmp;

除了需要关闭流之外,我将使用第二种方法。这有什么问题?

4

1 回答 1

1

对于将来寻找此问题的任何人:我通过在设置 StreamSource 之前添加以下行来解决此问题: bmp.CacheOption = BitmapCacheOption.OnLoad;

完整代码:

            BitmapImage bmp = new BitmapImage();
            bmp.BeginInit();
            bmp.CacheOption = BitmapCacheOption.OnLoad;
            bmp.StreamSource = fs;
            bmp.EndInit();
            img.Source = bmp;
于 2012-09-01T23:24:04.660 回答