缓解:图标对象中的 PNG 帧

从 .NET Framework 4.6 开始,该方法 Icon.ToBitmap 成功将带有 PNG 帧的图标转换为 Bitmap 对象。

在面向 .NET Framework 4.5.2 及更早版本的应用中,如果 Icon.ToBitmap 对象具有 PNG 帧,则 ArgumentOutOfRangeException 方法将引发 Icon 异常。

影响

此更改会影响以下应用:重新编译为面向 .NET Framework 4.6 的应用,以及对在 ArgumentOutOfRangeException 对象具有 PNG 帧时引发的 Icon 实施特殊处理的应用。 在 .NET Framework 4.6 下运行时,转换成功,不再抛出异常ArgumentOutOfRangeException,因此异常处理程序不再被调用。

缓解措施

如果此行为不可取,可以通过将以下元素添加到 <app.config 文件的运行时> 部分来保留以前的行为:

<AppContextSwitchOverrides
      value="Switch.System.Drawing.DontSupportPngFramesInIcons=true" />  

如果 app.config 文件已包含 AppContextSwitchOverrides 该元素,则应将新值与 value 如下所示的属性合并:

<AppContextSwitchOverrides
      value="Switch.System.Drawing.DontSupportPngFramesInIcons=true;previous key=previous-value" />

另请参阅