Наличие BitmapFrame.Create() в моем коде нарушает масштабирование Winforms DPI - даже если код не запускается

У меня есть эта функция для проверки глубины цвета PNG:

MemoryStream stream = new MemoryStream(File.ReadAllBytes(path));
var source = BitmapFrame.Create(stream, BitmapCreateOptions.IgnoreImageCache, BitmapCacheOption.OnDemand);
return source.Format.BitsPerPixel;

Каждый раз, когда запускается этот код, масштабирование DPI приложения прерывается и сбрасывается до 100%, а окно больше не разворачивается.

Мне удалось выделить строку кода, которая вызывает это, и это BitmapFrame.Create().

Это произойдет даже, если я полностью пропущу код, например:

return 32;
MemoryStream stream = new MemoryStream(File.ReadAllBytes(path));
var source = BitmapFrame.Create(stream, BitmapCreateOptions.IgnoreImageCache, BitmapCacheOption.OnDemand);
return source.Format.BitsPerPixel;

Ни одна из других строк после "return 32" не будет запущена, но ошибка все равно сработает, если я запустил функцию. Это работает, только если я закомментирую строки.

Есть идеи? Я просто не понимаю, как это вообще возможно, что затрудняет отладку.

0 ответов

Другие вопросы по тегам