從 .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" />