V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
blueboyggh
V2EX  ›  Windows

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

  •  
  •   blueboyggh · 2020-03-15 14:44:00 +08:00 · 2978 次点击
    这是一个创建于 1715 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 的菜单里有的字体比划渲染的非常不好

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

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

    SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2);
    单个屏幕的缩放完全自动。用这个已经移植了许多老旧 Win32 程序了。
    geelaw
        12
    geelaw  
       2020-03-15 18:50:24 +08:00
    看起来是 VirtualBox 没有采用 ClearType 反走样的设置
    LucentioLuo
        13
    LucentioLuo  
       2020-03-16 11:59:48 +08:00
    win10 的字体渲染问题要能完美解决就不叫 win10 了(虽然这是程序开发者的锅)
    请问你用几寸的显示器啊,我的 27 寸 4k 开 200%缩放看起来字太大了
    blueboyggh
        14
    blueboyggh  
    OP
       2020-03-16 17:03:17 +08:00 via Android
    @LucentioLuo 我就是 27 寸 4k,感觉还可以啊,你觉得大可以开 150%缩放试试?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5886 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 06:26 · PVG 14:26 · LAX 22:26 · JFK 01:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.