C# WinForms UserControls и ярлыки размыты при использовании GDI Scaling - PullRequest
0 голосов
/ 16 января 2020

Я испробовал почти все подходы, которые должны позволять разумное масштабирование, например, на мониторах 4K. Ни один из них не работает для меня идеально, иногда возникают проблемы с отдельными элементами управления (например, MenuStrip), иногда возникают проблемы с переходом на другой монитор, иногда возникают проблемы на HD, иногда на 4K, ...

способ, обеспечивающий наибольшую совместимость, был описан здесь: https://blogs.windows.com/windowsdeveloper/2017/05/19/improving-high-dpi-experience-gdi-based-desktop-apps/

Я расширил файл манифеста:

<asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2017/WindowsSettings">
       <gdiScaling>true</gdiScaling>
    </asmv3:windowsSettings>
</asmv3:application>

Например, для TabPages, ListViews Групповые блоки это решение работает хорошо (по крайней мере, для всех разрешений / масштабирования это выглядит нормально), но тексты кнопок, надписи и MenuStrip немного размыты, например, при 4K. Кроме того, CustomListView (UserControl) также размыт в отличие от исходного ListView. Я думаю, это потому, что эти элементы управления используют другой графический API для рисования своего контента.

Изображение: сравнение четких и размытых компонентов

Есть ли способ улучшить это размытие?

...