日期:2014-05-18 浏览次数:21340 次
In the transition from Winform era to the Wpf era. Different type of image classes are used for icons, buttons images and etc....
?
The pre-world uses the Icon class (System.Drawing), while the newer wpf will uses ImageSource, more specifically, ImageSource's concrete derived classes such as BigmapFrame or BitmapImage (System.Windows.Media.Imaging);
?
?
Below shows the code that helps you to convert from BitmapFrame to Icon
?
?
private static Icon ConvertFromBitmapFrame(BitmapFrame bitmapFrame)
{
Debug.Assert(bitmapFrame != null);
var ms = new MemoryStream();
var encoder = new PngBitmapEncoder();
encoder.Frames.Add(bitmapFrame);
encoder.Save(ms);
ms.Seek(0, SeekOrigin.Begin);
var bmp = new Bitmap(ms);
return Icon.FromHandle(bmp.GetHicon());
}
?
?
and below shows code to convert from Icon to ImageSource.?
?
?
private BitmapFrame ConvertFromIcon(Icon icon)
{
var memoryStream = new MemoryStream();
icon.Save(memoryStream);
memoryStream.Seek(0, SeekOrigin.Begin);
return BitmapFrame.Create(memoryStream);
}
?
?
?