Я использую C # Winforms в Visual Studio 2010. Так как я обновил свой ноутбук со старого ноутбука с разрешением 1366 x 768 до нового ноутбука с разрешением 1920x1080, я заметил проблему при продолжении разработки на новом ноутбуке.Я изолировал проблему до нового 150% масштабирования в ОС Windows (Windows на старом ноутбуке использовало 100% масштабирование).Когда я запускаю программу, правая часть окна странно обрезается.
Вот рабочая версия для старого ноутбука (ширина 1000 пикселей или 1500 пикселей в режиме Windows с масштабированием 150%):
![old](https://i.stack.imgur.com/ldTWj.png)
А вот новая версия на новом ноутбуке с рубленым окном (1286 пикселей в ширину, когда оно должно быть 1500 из-за 150% масштабирования).
![new](https://i.stack.imgur.com/VIQGC.png)
При немедленной загрузке проекта в новую настройку Windows с масштабированием 150% и запуске программы он работает нормально, но как только вы переместитесьодна из кнопок, так что VS обновляет код конструктора (кнопка 5 была перемещена, как вы можете видеть), а затем запускается, окно прерывается.
Даже при ручном входе в код Form1.Designer.cs,и настройка ClientSize на глупое высокое горизонтальное значение, такое как ClientSize = new System.Drawing.Size(3000, 709);
, приводит к ширине окна, которая ограничена максимум 1286 пикселями.(Не так) по совпадению, 1286 - это около 1920 / 1.5.
В общем, что, черт возьми, происходит?Это похоже на ошибку в управлении масштабированием VS.Чтобы было ясно, проблема возникает при перемещении разработки со 100% масштабируемого экрана Windows на 150% масштабируемый экран Windows в любой системе.Вам не нужно два ноутбука, чтобы воспроизвести проблему, все они могут быть воспроизведены на одном ноутбуке (но убедитесь, что вы вышли из системы и в Windows после переключения с / на 100% или 150%).
НаконецЧтобы быть ясным, я знаю об установке значения DPI-осведомленного в true, используя файл app.manifest
.Хотя это позволяет более четкий текст и решает проблему разбитого окна, я НЕ хочу идти по этому пути из-за несогласованных изменений в графическом интерфейсе моей программы, таких как перекрывающиеся элементы управления и неуместные элементы в некоторых настройках.