WPF的问题:BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.StreamSource = stream;
bi.EndInit();stream存的是图片流。但不知为什么bi就是不显示图片呢?Debug也不报错,从网上找了N多例子都是这样写的。
另外, 我把 stream转成byte再转成MemoryStream能显示。是哪儿出了问题?

解决方案 »

  1.   

    你把 stream.Position = 0; 或者 stream.Seek(0, SeekOrigin.Begin)); 后再看看。
      

  2.   

    bi.StreamSource = (stream)stream;试试这样改一下行不行
      

  3.   

    bi.StreamSource = (stream)stream;
      

  4.   

    bi.StreamSource = (stream)stream;
      

  5.   

    多谢楼上各位热心好友。
    这个问题我搞错了,实在对不起!如果是本地运行,可以显示图片。
    但在使用对等通道,则不会显示,请帮我找找错。
    [OperationContract(IsOneWay = true)]
    void Ink_Share_Pic(Stream stream_pic);
    ..............................
    public void Ink_Share_Pic(Stream stream_pic)
            {
                BitmapImage bi = new BitmapImage();
                bi.BeginInit();
                bi.StreamSource = stream_pic;
                bi.EndInit();
                ImageBrush ib = new ImageBrush();
                ib.ImageSource = bi;
                bg_ip.Background = ib;
                ib.Stretch = Stretch.None;
                bg_ip.Background =  ib;
            }
    ...................................
    channel.Ink_Share_Pic(stream);
      

  6.   

    问题补充:
    如果连续多次调用channel.Ink_Share_Pic(stream),程序会抛出如下异常:
    无法将通信对象ServiceChannel用于通信,因为它已经被中止。
    是不是图片不能显示和这有关?
    另:上面的代码多写了一行 bg_ip.Background = ib