Mitigação: quadros PNG em objetos de ícone
Do .NET Framework 4.6 em diante, o método Icon.ToBitmap converte com êxito ícones com quadros PNG em objetos Bitmap.
Em aplicativos direcionados ao .NET Framework 4.5.2 e versões anteriores, o método Icon.ToBitmap gera uma exceção ArgumentOutOfRangeException quando o objeto Icon tem quadros PNG.
Impacto
Essa alteração afeta aplicativos que são recompilados para direcionamento ao .NET Framework 4.6 e que implementam tratamento especial para a ArgumentOutOfRangeException que será gerada se um objeto Icon tiver quadros PNG. Ao executar no .NET Framework 4.6, a conversão é bem-sucedida, uma ArgumentOutOfRangeException não é mais gerada e, portanto, o manipulador de exceção não é invocado.
Atenuação
Se esse comportamento for indesejável, será possível reter o comportamento anterior adicionando o seguinte elemento à seção <runtime> do arquivo app.config:
<AppContextSwitchOverrides
value="Switch.System.Drawing.DontSupportPngFramesInIcons=true" />
Se o arquivo app.config já contiver o elemento AppContextSwitchOverrides
, o novo valor deverá ser mesclado ao atributo value
, da seguinte forma:
<AppContextSwitchOverrides
value="Switch.System.Drawing.DontSupportPngFramesInIcons=true;previous key=previous-value" />