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

Confira também