解决方案 »

  1.   

    Form 的 AutoScaleMode ?
      

  2.   

    这是个麻烦的事情。模糊是因为默认情况windows把程序当作不关心dpi的 (not dpi-aware),使用DPI Virtualization拉伸。需要程序自己声明是能够自行处理dpi (dpi-aware),这样windows就把dpi的问题扔给了程序自己解决。winform有个AutoScaleMode设置可以做这个事情。但是,它只能处理位置和大小,控件内部的内容/布局以及图片大小如果没考虑高dpi情况仍然可能不对。所以需要控件和程序作者都考虑到才可能正常缩放。winform自带的控件是从.net 4.5.1开始才一点点的支持高dpi,使用EnableWindowsFormsHighDpiAutoResizing这个appsettings开启支持。如果用到第三方控件,那也需要第三方控件的支持。如果自己计算了一些位置/大小,还有使用的图片/图标也可能需要根据dpi来调整。
      

  3.   

    谢谢楼上几位的解答
    真是个头疼的问题,我看到网上很多人把windows不能良好支持高dpi归罪于第三方应用程序开发者懒得支持
    但是我想问问,为什么苹果能够快速完成高DPI的支持呢?
    在从低DPI升级到高DPI的过程中,苹果开发者需要自行解决类似于windows中控件放大比例,字体显示不全等问题吗?还是说苹果从底层已经提供了这些功能,一般开发者根本不需要为这些问题操心?