MlSkin皮肤组件支持High-DPI显示效果,需要满足以下条件:
-
Delphi10.3(包含)之后的Delphi版本
-
工程选项 Application->Mainifest->DPI Awareness 需要设置成 Per Monitor V2
-
在工程的.dpr文件中,在最前面uses uMlSkinActiveHighDPI.pas 单元文件
通过上面这几项设置后,编译运行程序后就能有效果显示出来了,不过你可能会发现一些显示图片的地方会有点模糊,那是因为图片为了适配高DPI而被放大了,要解决这个问题,请继续往下看
在MlSkinResManager中添加多种尺寸的图标资源
-
先添加正常大小的图片,然后选中刚添加的这个图片ID,如:apple-logo-48
-
接着勾选右边 DPI Scale,选择将要添加的图片尺寸比例,比如:200%,再点击 Add按钮导入图片
-
不同尺寸的图片添加进来后,ImageID会自动增加一个后缀@DPIxxx (xxx表示不同尺寸)
这样图片添加好后,程序运行时会根据当前屏幕的DPI自动去选择对应尺寸的图片,如果没有找到,则会直接放大显示图片
最后附上EMB官方关于Delphi对支持High-DPI显示效果的几篇文章链接,可以了解一下