在 Win10 的高 DPI 下,为啥不同软件的字体渲染还不一样?

2020-03-15 14:44:00 +08:00
 blueboyggh

Windows 10 1909,4K 显示器,200%缩放。

大部分软件字体渲染正常,但是 VirtualBox 是这样的: https://i.loli.net/2020/03/15/SLBOuxkGnvUXhjw.jpg

正常的软件比如 Xshell: https://i.loli.net/2020/03/15/QL9lKZB1kxedj47.jpg

明显可以看到 VB 的菜单里有的字体比划渲染的非常不好

这到底是为啥呢?有办法解决吗?

2999 次点击
所在节点    Windows
14 条回复
updateing
2020-03-15 14:53:52 +08:00
加一个:Wireshark 也是类似于 VirtualBox 那样显示的,Visual Studio 2019 则直接显示成了以前那种会变形的样子(尽管它不会像不支持缩放的程序被强行拉伸那样变模糊)……
whi147
2020-03-15 14:55:27 +08:00
软件需要主动适配 4k
blueboyggh
2020-03-15 14:59:29 +08:00
@updateing 以前那种是啥样的?给截个图看看?
blueboyggh
2020-03-15 14:59:54 +08:00
@whi147 这意思是软件没有适配高 DPI 吗?
whi147
2020-03-15 15:01:09 +08:00
window 没有自动 hidpi 的 api,但是可以获取缩放,所以软件需要在 gui 部分乘上缩放倍数。
whi147
2020-03-15 15:04:03 +08:00
.net 就不知道了,c 所用的 window 标准库中是没有的
weyou
2020-03-15 15:47:08 +08:00
virtualbox 和 wireshark 的界面都是用的是 Qt,估计没有配置 Qt.AA_EnableHighDpiScaling
blueboyggh
2020-03-15 16:37:07 +08:00
@weyou 问题是有一个 uwp 的 telegram 第三方客户端,也有字体渲染问题…
ho121
2020-03-15 16:58:06 +08:00
说实话,楼主的图片没觉得哪个好看哪个不好看
blueboyggh
2020-03-15 16:59:48 +08:00
@ho121 明显 xshell 的好一些…别跟 mac 比…
thedrwu
2020-03-15 18:07:46 +08:00
@whi147 #5 #6

SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2);
单个屏幕的缩放完全自动。用这个已经移植了许多老旧 Win32 程序了。
geelaw
2020-03-15 18:50:24 +08:00
看起来是 VirtualBox 没有采用 ClearType 反走样的设置
LucentioLuo
2020-03-16 11:59:48 +08:00
win10 的字体渲染问题要能完美解决就不叫 win10 了(虽然这是程序开发者的锅)
请问你用几寸的显示器啊,我的 27 寸 4k 开 200%缩放看起来字太大了
blueboyggh
2020-03-16 17:03:17 +08:00
@LucentioLuo 我就是 27 寸 4k,感觉还可以啊,你觉得大可以开 150%缩放试试?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/652974

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX