Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

当Windows文字缩放级别(Scale)非100%时的界面显示问题 #77

Closed
calcitem opened this issue Feb 1, 2022 · 11 comments
Closed
Assignees
Labels
改进 New feature or request

Comments

@calcitem
Copy link
Contributor

calcitem commented Feb 1, 2022

问题概述

当Windows文字缩放级别(Scale)非100%时,界面显示异常。缩放级别越大异常越明显。

在 Windows 中右键点击桌面,选择 “显示设置”,在 "缩放和布局" 中将 "更改文本、应用等项目的大小" 中将 100% 修改为更大的值,然后再启动程序,可以复现问题。

缩放级别非 100% 时,可能有部分分辨率下是正常的,比如当缩放级别为 150% 时以下2个分辨率正常:

800x600
1280x720

预期行为

没有文字覆盖,文字、按钮均能完整显示。

影响分析

在高分辨率的显示器上,往往会将缩放级别调大,甚至 Windows 会根据分辨率的大小推荐一个比 100% 更大的缩放值,否则 Windows 界面的文字显示过小。

年纪大的用户更喜欢调大文字缩放级别。之所以不是调分辨率,是因为调小分辨率会导致无论图片还是文字全部显示模糊,所以常规方式是调整文字缩放级别。

问题列表

以下为缩放级别为 125% 时的显示情况。

长按钮文本显示不全

下图左下角的 "导出信息文件" 的按钮显示为 "导出信息文",末尾少一个字。

image

下拉框中文本显示不全

下图中的文字排版方向右边的下拉框,预期显示为“自动检测”,实际显示为“动检”,左侧和右侧文字显示不全。

另外,"识别图像文本" 按钮文本显示不全,写入PDF文档 左侧的图标显示靠下,可能是因为和按钮长度不足有关。(和上面的“长按钮文本显示不全”的问题可能同源)

image

文字叠加到右侧下拉框上或被右侧文字覆盖

下图中存在多处文字或控件被覆盖的情况。比如灰度、垂直旋转,等。

image

工具栏中的下拉三角距离左边的按钮过远

批量修改文档中工具栏的 “删除文件” 按钮右边出现很长的空白,才到 “刷新文档属性” 按钮的下拉小三角 。
这段空白几乎等于 “刷新文档属性” 按钮的总长度。
最大化窗口不能解决。
预期为,“刷新文档属性” 按钮直接显示在工具栏上,即便不显示,小三角也不应该距离如此远。
某些界面是显示全的,如 "重命名文件" 界面的 “刷新文档属性” 按钮能显示在工具栏上。

image

表格中的标题很多显示不全

表格中的标题很多显示不全,末尾显示为 ...,需要一个个手动拉长。

image

预期显示效果:

image

再举2例:

image

image

@calcitem
Copy link
Contributor Author

calcitem commented Feb 1, 2022

Lead 大大新年好~
目前问题已汇总完成。 如需近一步协助,可以告之哈。

@wmjordan
Copy link
Owner

wmjordan commented Feb 1, 2022

新年好。
实在太奇怪了。
我都没有安装 Windows 11,目前解决不了这问题。

@calcitem
Copy link
Contributor Author

calcitem commented Feb 1, 2022

刚在虚拟机中安装了 Windows 10 1909 (build 18363) 中文版,暂未安装 Office,下载最新测试版运行,问题依然存在,排除了 Win 11 和英文的影响,原贴已更新。

不知 Leader 大大的主要环境是啥,我这边可以在虚拟机中安装这些环境验证一下。

@wmjordan
Copy link
Owner

wmjordan commented Feb 1, 2022

我机器上的是Windows 10 20H2。

image

image

@calcitem calcitem changed the title 在某些环境下界面显示问题 当Windows文字缩放级别(Scale)非100%时的界面显示问题 Feb 1, 2022
@calcitem
Copy link
Contributor Author

calcitem commented Feb 1, 2022

定位原因了,还是和 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

@wmjordan
Copy link
Owner

wmjordan commented Feb 1, 2022

image

我机器上的缩放比例如上

@calcitem
Copy link
Contributor Author

calcitem commented Feb 1, 2022

看起来确实不是所有的分辨率都异常。

当缩放级别为 150% 时,我这边验证的结果是,以下2个分辨率正常:

800x600
1280x720

其他都异常。

(我的显示器分辨率最高可以配置到 3840x2400)

当缩放级别为 100%,估计无论分辨率如何设置都是正常的 (未验证)。

主贴已更新。

@wmjordan
Copy link
Owner

WinForms 的程序,在调整屏幕分辨率之后,一般都要重新启动才能正常显示的。

@wmjordan
Copy link
Owner

表格中的标题很多显示不全,末尾显示为 ...,需要一个个手动拉长。

我最近更新了程序,针对这个问题做了调整。请看看最新的测试版是否会好些。

@wmjordan wmjordan self-assigned this May 11, 2022
@wmjordan wmjordan added the 改进 New feature or request label May 11, 2022
@wmjordan
Copy link
Owner

已经优化该问题,如还有异常显示,请留言

@calcitem
Copy link
Contributor Author

好的,谢谢!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
改进 New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants