Я связываю свойство 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? или я что-то делаю неправильно?