Поделиться через


Устранение рисков: рамки PNG в объектах значков

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

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

Воздействие

Это изменение влияет на приложения, которые перекомпилируются для ArgumentOutOfRangeException .NET Framework 4.6 и реализуют специальную обработку, возникающую при Icon наличии кадров PNG объекта. При выполнении в .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" />

См. также