微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从StreamReader设置System.Windows.Controls.Image吗?

如何解决从StreamReader设置System.Windows.Controls.Image吗?

| 我在StreamReader对象中获得了PNG格式的图像。我想在WPF表单上显示它。最简单的方法是什么? 我在表单上放置了一个“ 0”控件,但我不知道如何设置它。     

解决方法

Image.Source
属性要求您提供
BitmapSource
实例。要从PNG创建此文件,您需要对其进行解码。请在此处查看相关问题: WPF位图源ImageSource
BitmapSource source = null;

PngBitmapDecoder decoder;
using (var stream = new FileStream(@\"C:\\Temp\\logo.png\",FileMode.Open,FileAccess.Read,FileShare.Read))
{
    decoder = new PngBitmapDecoder(stream,BitmapCreateOptions.PreservePixelFormat,BitmapCacheOption.None);

    if (decoder.Frames != null && decoder.Frames.Count > 0)
        source = decoder.Frames[0];
}

return source;
    ,这似乎可行:
 image1.Source = BitmapFrame.Create(myStreamReader.BaseStream);
    ,我将不使用StreamReader,而是直接生成Stream,
FileStream strm = new FileStream(\"myImage.png\",FileMode.Open);
PngBitmapDecoder decoder = new PngBitmapDecoder(strm,BitmapCacheOption.Default);
myImage.Source = decoder.Frames[0];
其中myImage是XAML中图像的名称
<Image x:Name=\"myImage\"/> 
更新:如果必须使用StreamReader,则可以使用.BaseStream获得Stream。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。