У меня есть приложение C# Winforms, которое я пытаюсь сделать DPI осведомленным. Я пытался следовать инструкциям здесь:
https://learn.microsoft.com/en-gb/dotne ... rmsобразно Создан как TestCase:
http://endendandodds.stewartsplace.org. ... anager.zip
Большая часть пользовательского интерфейса - это TabControl, каждая из которых содержит DataGridView. В уменьшенном тесте все вкладки, кроме
, первые, являются пустыми, но первая вкладка - это все, что необходимо для того, чтобы показать проблему. В полном приложении в верхней области основной формы существуют различные элементы управления
; Только кнопка Tab Level Spect, чтобы показать, что она продолжает правильно отображать
(в отличие от TabControl и DataGridView). < /p>
Обратите внимание, что: < /p>
Приложение установлено в Target .NET Framework 4.8. < /li>
. файл MANIFEST 10 STAPERDED. /> Файл конфигурации имеет режим масштабирования, установленную в виде пермониторизации2, чтобы окно было масштабироваться при перемещении между
экранами различных DPI. Когда оба монитора устанавливаются на один и тот же DPI, будь то на 100% или 125%, все выглядит
нормально - окно появляется в правильном масштабе и является резким. В
Scale после этого изменяется правильно, когда я перемещаю окно между экранами:
< /p>
Если у меня есть мой основной дисплей, установленную на 125%, а мой другой дисплей установлен на 100%, это совершенно другая история. Это также выглядит хорошо, когда я затем перемещаю окно
на другой дисплей. Однако, как только я перемещаю его обратно на основной дисплей, макет полностью испортится:
< /p>
Заметьте, как: < /p>
Вкладки исчезли. Перемещение
cursor влево не возвращает другие столбцы обратно в представление. Вернуться к правильной макету, за исключением закрытия и перезапуска моего приложения. Как исправить?
Подробнее здесь: https://stackoverflow.com/questions/796 ... t-messes-u
Осведомленность DPI в приложении Winforms с TabControl и DataGridView - Mayout испортится при перемещении окна между экр ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение