Решение проблемы: кадры PNG в объектах Icon

Начиная с платформа .NET Framework 4.6 Icon.ToBitmap метод успешно преобразует значки с кадрами PNG в Bitmap объекты.

В приложениях, предназначенных для .NET Framework 4.5.2 и более ранних версий, метод Icon.ToBitmap создает исключение ArgumentOutOfRangeException, если объект Icon содержит кадры PNG.

Воздействие

Это изменение затрагивает приложения, которые компилируются повторно для платформы .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" />

См. также