DPI-aware WinForms выглядит иначе на обычном мониторе: проверяем режим масштабирования. Пошаговый разбор: зафиксировать масштаб Windows и фактический DPI, проверить HighDpiMode до создания UI, AutoScaleMode и AutoScaleDimensions, временно отключить восстановление размеров окна и сравнить минимальный проект; не править координаты каждого control пока…
16. Зафиксируйте границы симптома
Исходная боль сформулирована узко: на другом мониторе элементы формы смещаются или меняют размер, и разработчик начинает вручную подгонять координаты под один экран хотя режим процесса и AutoScaleDimensions могли быть зафиксированы в другой среде. Нужный ответ также ограничен конкретным намерением: почему форма WinForms с DPI awareness выглядит иначе чем в дизайнере на мониторе 100 процентов и как проверить HighDpiMode AutoScaleMode базовые размеры шрифт и сохранённую геометрию. Сначала запишите наблюдаемый симптом своими словами, время, версию затронутого компонента и один ожидаемый результат. Не переносите в заметки имена, адреса, токены, полные журналы или приватные ссылки. Свежая публичная карточка от 2026-08-27 подтверждает существование вопроса, но не доказывает его причину, массовость или популярность.
16. Проведите один обратимый контроль
Безопасная последовательность для этого случая: зафиксировать масштаб Windows и фактический DPI, проверить HighDpiMode до создания UI, AutoScaleMode и AutoScaleDimensions, временно отключить восстановление размеров окна и сравнить минимальный проект; не править координаты каждого control пока режим не воспроизводится. Меняйте один фактор за раз и перед действием сохраните исходное состояние, чтобы сравнение не смешивало несколько причин. Контроль должен повторять тот же вход, тот же маршрут и тот же ожидаемый результат. Успех фиксируется только когда целевой симптом меняется предсказуемо после одного обратимого шага. Практическая матрица именно для этой темы: матрица design DPI × runtime DPI × HighDpiMode × AutoScaleMode × persisted bounds отделяет масштаб процесса от шрифта и сохранённой геометрии; минимальная форма служит обратимым контролем.
16. Сверьте вывод с первичными источниками
Доказательная граница собрана из первичных материалов. Microsoft определяет DpiUnaware, SystemAware, PerMonitor и PerMonitorV2 и отмечает что смена режима после старта приложения не влияет на масштабирование. Microsoft документирует AutoScaleMode, AutoScaleDimensions и AutoScaleFactor и предупреждает о смешивании режимов масштабирования. Эти документы подтверждают только описанные в них механизмы и условия: они не позволяют автоматически назначить виновный компонент по одному совпадающему симптому. Если наблюдение расходится с документацией, вернитесь к исходному состоянию, проверьте точную версию продукта и не расширяйте изменение на другие устройства, учётные записи или окружения.
16. Остановитесь и соберите безопасный пакет
Стоп-линия наступает, если контроль не воспроизводится, появляется риск потери данных или доступа, требуется необратимый сброс либо результат зависит сразу от нескольких переменных. Для поддержки подготовьте минимальный обезличенный пакет: идентификатор сценария t18-winforms-dpi-aware-non-hires, версии компонентов, время проверки, ожидаемый и фактический результат, один безопасный фрагмент ошибки и перечень уже возвращённых настроек. Не прикладывайте секреты, персональные данные или полные конфигурации. Уникальная ценность такого пакета состоит в следующем: В каталоге нет материала о WinForms design/runtime DPI и persisted bounds; соседние статьи про масштаб Outlook и браузеров не отвечают разработчику desktop UI.
Материал подготовлен самостоятельно с автоматизацией и редакционно проверен 27 августа 2026 года по обезличенному публичному сигналу и прямым первичным источникам; персональные данные и частные обстоятельства не использовались.
Источники и проверка
- learn.microsoft.com: первичный материал 1 проверено 2026-08-27
- learn.microsoft.com: первичный материал 2 проверено 2026-08-27
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.