我将 Image.Source 属性绑定到下面显示的属性的结果。
public BitmapSource MyImageSource
{
get
{
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;
}
}
由于某种原因,这在图像渲染期间失败(在 PresentationCore 程序集中的深处)。我确定图像没有损坏,因为我可以成功显示没有绑定的相同图像
<Image Name="FooImage" Source="/logo.png" />
我必须在代码中绑定图像源,因为我最终将从 base64 字符串创建图像流。
任何人都知道这是否是 WPF 的错误?还是我做错了什么?