PDFPatcher
PDFPatcher copied to clipboard
当Windows文字缩放级别(Scale)非100%时的界面显示问题
问题概述
当Windows文字缩放级别(Scale)非100%时,界面显示异常。缩放级别越大异常越明显。
在 Windows 中右键点击桌面,选择 “显示设置”,在 "缩放和布局" 中将 "更改文本、应用等项目的大小" 中将 100% 修改为更大的值,然后再启动程序,可以复现问题。
缩放级别非 100% 时,可能有部分分辨率下是正常的,比如当缩放级别为 150% 时以下2个分辨率正常:
800x600
1280x720
预期行为
没有文字覆盖,文字、按钮均能完整显示。
影响分析
在高分辨率的显示器上,往往会将缩放级别调大,甚至 Windows 会根据分辨率的大小推荐一个比 100% 更大的缩放值,否则 Windows 界面的文字显示过小。
年纪大的用户更喜欢调大文字缩放级别。之所以不是调分辨率,是因为调小分辨率会导致无论图片还是文字全部显示模糊,所以常规方式是调整文字缩放级别。
问题列表
以下为缩放级别为 125% 时的显示情况。
长按钮文本显示不全
下图左下角的 "导出信息文件" 的按钮显示为 "导出信息文",末尾少一个字。
下拉框中文本显示不全
下图中的文字排版方向右边的下拉框,预期显示为“自动检测”,实际显示为“动检”,左侧和右侧文字显示不全。
另外,"识别图像文本" 按钮文本显示不全,写入PDF文档 左侧的图标显示靠下,可能是因为和按钮长度不足有关。(和上面的“长按钮文本显示不全”的问题可能同源)
文字叠加到右侧下拉框上或被右侧文字覆盖
下图中存在多处文字或控件被覆盖的情况。比如灰度、垂直旋转,等。
工具栏中的下拉三角距离左边的按钮过远
批量修改文档中工具栏的 “删除文件” 按钮右边出现很长的空白,才到 “刷新文档属性” 按钮的下拉小三角 。 这段空白几乎等于 “刷新文档属性” 按钮的总长度。 最大化窗口不能解决。 预期为,“刷新文档属性” 按钮直接显示在工具栏上,即便不显示,小三角也不应该距离如此远。 某些界面是显示全的,如 "重命名文件" 界面的 “刷新文档属性” 按钮能显示在工具栏上。
表格中的标题很多显示不全
表格中的标题很多显示不全,末尾显示为 ...
,需要一个个手动拉长。
预期显示效果:
再举2例:
Lead 大大新年好~ 目前问题已汇总完成。 如需近一步协助,可以告之哈。
新年好。 实在太奇怪了。 我都没有安装 Windows 11,目前解决不了这问题。
刚在虚拟机中安装了 Windows 10 1909 (build 18363) 中文版,暂未安装 Office,下载最新测试版运行,问题依然存在,排除了 Win 11 和英文的影响,原贴已更新。
不知 Leader 大大的主要环境是啥,我这边可以在虚拟机中安装这些环境验证一下。
我机器上的是Windows 10 20H2。


定位原因了,还是和 Windows 的文字缩放级别有关系,之前之所以误以为无关,是因为在调整缩放级别到 100% 后没有重启程序,如重启则可以看到显示正常。
在高分辨率的显示器上,往往会将缩放级别调大,甚至 Windows 会根据分辨率的大小推荐一个比 100% 更大的缩放值,否则 Windows 界面的文字显示过小。年纪大的用户更喜欢调大缩放级别。之所以不是调分辨率,是因为调小分辨率会导致显示模糊,所以常规方式是调整文字缩放级别。
主贴已更新。
要解决此问题,我先看看 C# 能否做到 Scale 自适应。
目前查阅的资料列表: https://docs.microsoft.com/en-us/dotnet/desktop/winforms/forms/autoscale?view=netdesktop-6.0 https://stackoverflow.com/questions/13842931/how-can-i-make-label-text-scale-able-in-winforms-application http://csharphelper.com/blog/2015/04/size-a-font-to-fit-a-label-in-c/ https://www.codeproject.com/Questions/643604/Adjust-font-size-to-fit-user-control
我机器上的缩放比例如上
看起来确实不是所有的分辨率都异常。
当缩放级别为 150% 时,我这边验证的结果是,以下2个分辨率正常:
800x600 1280x720
其他都异常。
(我的显示器分辨率最高可以配置到 3840x2400)
当缩放级别为 100%,估计无论分辨率如何设置都是正常的 (未验证)。
主贴已更新。
WinForms 的程序,在调整屏幕分辨率之后,一般都要重新启动才能正常显示的。
表格中的标题很多显示不全,末尾显示为
...
,需要一个个手动拉长。
我最近更新了程序,针对这个问题做了调整。请看看最新的测试版是否会好些。
已经优化该问题,如还有异常显示,请留言
好的,谢谢!