在对话框窗口的代码隐藏中,我根据应用程序的字体大小选择图标大小,方法如下:
double iconSize = 24;
if (Session.FontSize <= 16)
iconSize = 48;
else if (Session.FontSize >= 28)
iconSize = 72;
Uri uri = new Uri("pack://application:,,,/MyApp;component/Resources/
Status-dialog-information.ico");
BitmapDecoder decoder = BitmapDecoder.Create(uri,
BitmapCreateOptions.DelayCreation,
BitmapCacheOption.Default);
BitmapSource bms = decoder.Frames.
Where(f => f.Width == iconSize).FirstOrDefault();
imageControl.Source = bms;
,其中 imageControl 是图像控件。我使用 Oxygen 中的图标(在 iconarchive.com 中找到)
现在,上面的代码适用于一些图标,没有问题。但是对于其他一些图标文件,例如上面的,它只在我第一次创建我的对话框窗口时起作用。第二次创建对话框窗口 BitmapDecoder.Create() 方法抛出 System.IO.FileFormatException -“图像格式无法识别”。请建议如何解决它。