[原创][开源]C# Winform DPI自适应方案,SunnyUI三步搞定
-
SunnyUI.Net, 基于 C# .Net WinForm 开源控件库、工具类库、扩展类库、多页面开发框架
- 帮助文档目录: https://www.cnblogs.com/yhuse/p/SunnyUI_Menu.html
Winform窗体随着屏幕的DPI缩放,会引起窗体变形及字体变形。
SunnyUI的DPI缩放自适应方案目标为随着DPI缩放,窗体和字体均不变形,从而实现界面的美观。
主要有以下三步操作:
1、设置窗体和自定义用户控件的AutoScaleMode为None
实现目标:禁止窗体因为字体大小缩放变形
因为显示的高分屏,然后操作系统的设置了字体缩放引起的。窗体默认的AutoScaleMode = Font,控件会因为高分屏自动缩放。
解决方法:设置窗体、用户控件的AutoScaleMode = None
2、设置app.manifest的dpiAware为true
实现目标:禁止窗体因为DPI缩放变形
选择项目属性,安全性
选中 启用 ClickOnce 安全设置,再取消选中。
这时候项目的文件里就多了app.manifest
按下面代码修改,启用dpiAware
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">truedpiAware>
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">truelongPathAware>
windowsSettings>
application>
56829229 (SunnyUI技术交流群)