using System.Drawing; using System.Windows.Media.Imaging; using System.Windows.Media; namespace Bloxstrap.Extensions { public static class IconEx { public static Icon GetSized(this Icon icon, int width, int height) => new(icon, new Size(width, height)); public static ImageSource GetImageSource(this Icon icon, bool handleException = true) { using MemoryStream stream = new(); icon.Save(stream); if (handleException) { try { return BitmapFrame.Create(stream, BitmapCreateOptions.None, BitmapCacheOption.OnLoad); } catch (Exception ex) { App.Logger.WriteException("IconEx::GetImageSource", ex); Frontend.ShowMessageBox(String.Format(Strings.Dialog_IconLoadFailed, ex.Message)); return BootstrapperIcon.IconBloxstrap.GetIcon().GetImageSource(false); } } else { return BitmapFrame.Create(stream, BitmapCreateOptions.None, BitmapCacheOption.OnLoad); } } } }