我正在使用以下代码来流式传输图像源:

        BitmapImage Art3 = new BitmapImage();
        using (FileStream stream = File.OpenRead("c:\\temp\\Album.jpg"))
        {
            Art3.BeginInit();
            Art3.StreamSource = stream;
            Art3.EndInit();
        }
        artwork.Source = Art3;

“艺术品”是应该显示图像的 XAML 对象。代码应该不会锁定图像,它不会锁定它,但也不会显示它并且默认图像变为“无”......我的猜测是我没有正确使用流,并且我的图像变为空。帮助?

更新:

我现在正在使用一位 friend 向我建议的以下代码:
        BitmapImage Art3 = new BitmapImage();

        FileStream f = File.OpenRead("c:\\temp\\Album.jpg");

        MemoryStream ms = new MemoryStream();
        f.CopyTo(ms);
        f.Close();

        Art3.BeginInit();
        Art3.StreamSource = ms;
        Art3.EndInit();

        artwork.Source = Art3;

出于某种奇怪的原因,此代码返回以下错误:



我究竟做错了什么?我确信我尝试加载的图像没有损坏。

最佳答案

我设法通过使用以下代码解决了这个问题:

        BitmapImage Art3 = new BitmapImage();

        FileStream f = File.OpenRead("c:\\temp\\Album.jpg");

        MemoryStream ms = new MemoryStream();
        f.CopyTo(ms);
        ms.Seek(0, SeekOrigin.Begin);
        f.Close();

        Art3.BeginInit();
        Art3.StreamSource = ms;
        Art3.EndInit();

        artwork.Source = Art3;

感谢所有试图帮助我的人!

10-08 18:22