У нас есть приложение для Windows Forms, используемое для тестирования наших продуктов, которое в течение почти 10 лет имело почти одинаковые формы и диалоги.AutoScaleMode в конструкторе имеет значение «Шрифт» для обеих форм, и это не изменилось со времени первоначального дизайна.AutoSize установлен в false и просто для хорошей меры (я предполагаю) AutoSizeMode установлен в GrowOnly.Следующие исходные строки находятся в Program.cs:
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Помните, это работало безупречно в течение многих лет ...
Одно из последних обновлений VS2017 включало поддержку AutoScale для мониторов сразные DPI.У меня монитор с относительно высоким разрешением, поэтому, когда я внес некоторые изменения в диалоговое окно «Настройки» (добавление элементов управления и т. Д.), Я начал получать ярко-желтые баннеры, пересекающие верхнюю часть дизайнерской поверхности, сообщая, что для AutoScaling установлено значение 125%, и яхотели бы изменить это?Я пытался идти вперед и назад, и когда в режиме 100% (автоматическое масштабирование выключено), меня предупреждали, что формы XAML могут отображаться некорректно.Хорошо, я работаю с формами, поэтому я вернулся к "нормальному" масштабированию, и форма выглядела нормально.
Пока я не попытался запустить программу.Теперь, когда я запускаю программу, основная форма выглядит следующим образом (детали удалены, чтобы защитить виновных):
... но когда я открываюДиалог настроек выглядит так:
Yikes!На практике это выглядит хуже, относительные изображения здесь не отражают разницу в размерах и масштабе.
Я понятия не имею, что изменилось или как / почему это происходит, но я никак не могу применить это в производстве.Я пытался изменить настройки AutoScale, но безрезультатно.Может ли кто-нибудь указать мне правильное направление?
Заранее спасибо!
РЕДАКТИРОВАТЬ: Кажется, изменение масштаба происходит только на моем компьютере, когда я запускаю приложение в Debug.Что бы не мешало отображению форм на моей машине, это не делает этого на машинах моих сотрудников и не реплицируется на исполняемый файл, созданный сервером сборки.
В другой заметке я попробовал все настройки, связанные с DPI, которые я смог найти, добавил те, которых не было из-за возраста программы, но все безрезультатно.Ничто из того, что я пробовал, не повлияло на странность отображения программы на моем компьютере.Тьфу.