Масштабирование изменений приложения Winforms на мониторе с высоким разрешением при рисовании диаграммы - PullRequest
0 голосов
/ 16 января 2019

У меня есть приложение Winforms (C #, .NET 4.7), которое не имеет проблем в моей системе с монитором 1920x1080. Я установил для AutoScaleMode значение «Шрифт» для основного окна и добавил значение true в свой манифест. Запуск программы на компьютере с экраном с высоким разрешением (3840x2160), кажется, также работает нормально. Все масштабировано правильно и все читабельно. Пока я не открою файл данных и не покажу результаты на элементе управления Map или Chart. Затем вся программа внезапно масштабируется примерно до 50% от ее первоначального размера, и все шрифты становятся нечитаемыми маленькими. Изменение размера или разрешения шрифта с помощью настроек дисплея Windows не имеет никакого эффекта. Что может вызвать это масштабирование во время выполнения и как я могу обойти это?

1 Ответ

0 голосов
/ 16 января 2019

После выполнения всех рекомендаций, как описано в этом посте: все равно не работает. Другое подробное объяснение на сайте Telerik, однако, поставило меня на правильный путь. Проблема была вызвана контролем GMap, но могла быть вызвана любым сторонним контролем, который был разработан в другой системе. Элемент управления содержит параметр масштабирования в файле Designer.cs:

this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);

Этот параметр автоматически добавляется IDE при создании нового элемента управления и основан на настройках DPI системы, в которой он создан. В системе 96 DPI это всегда

this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);

Таким образом, все формы, которые я создал для своего приложения, имели настройку на основе 96DPI, но элемент управления GMap имел другую настройку. И когда элемент управления GMap был перерисован, это привело к масштабированию всего приложения с использованием неверных AutoScaleDimensions. Решение состоит в том, чтобы просто найти все вхождения AutoScaleDimensions и установить их все (6F, 13F).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...