为什么我不能将类型为BitmapImage/BitmapSource/ImageSource的wpfImage添加到资源文件中。
是的,它不可序列化。。。那么我该如何解决这个问题呢?我需要用程序将位图图像放在具有键/值访问权限的资源文件中。
using (ResXResourceWriter writer = new ResXResourceWriter("TBM.Resource"))
{
writer.AddResource(fileExtension, wpfImage);
writer.Generate();
}
Resx文件不是为与WPF图像一起使用而设计的。不过,它们可以很好地处理GDI图像,因此您可以将图像保存到System.Drawing.Bitmap
中,并将其添加到资源文件中。
var encoder = new PngBitmapEncoder();
using (var stream = new MemoryStream())
{
// Write the WPF image to the stream
encoder.Frames.Add(BitmapFrame.Create(wpfImage));
encoder.Save(stream);
// Rewind the stream
stream.Position = 0;
// Read the stream to a GDI image
var bitmap = (System.Drawing.Bitmap)System.Drawing.Image.FromStream(stream);
// Add the GDI image to the resource file
writer.AddResource(fileExtension, bitmap);
}