问题出在windows字体上
不完全是。这不是您要更改的字体大小,而是视频适配器的每英寸点数 (DPI) 设置。传统设置是 96 dpi,从 Vista 开始,更改此设置变得容易得多。常见的其他选择是 120 dpi (125%) 和 144 dpi (150%),它们可以通过单选按钮从显示小程序直接访问。
显示器分辨率已经停滞了很长时间,已经避开摩尔定律长达 30 年。这种情况终于改变了,这在很大程度上要归功于苹果公司对“视网膜”显示器的推动。最新的 MacBook Pro 在 13 英寸屏幕上具有 2560 x 1600 像素,大约 230 dpi。
这确实带来了一个问题,例如,任何创建 1024x768 窗口的程序都会在这样的显示器上将其 UI 变成邮票。如果没有放大镜,用户界面就会变得无法使用。这样的程序需要知道视频 DPI 设置并创建一个更大的窗口,与窗口最初设计的方式相比,DPI 设置的增加成比例地更大。
这在 WPF 和 Winforms 中都是自动的。WPF 默认获取它,因为它的所有位置和大小都以英寸表示,单位为 1/96"。Winforms 仍然适用于像素,但它通过其 AutoScaleMode 属性内置了自动缩放。
这就是该用户机器上发生的情况,他的视频 DPI 设置值比您的机器大。但是,他的屏幕上也没有更多可用的像素。有视力障碍的人通常会选择,增加 DPI 设置的副作用是字体变大,因此更容易阅读。但是不可避免的问题是,您放置在窗口右侧和底部边缘附近的任何控件都会脱落,因此屏幕不够大。
您可以通过调整窗口布局来解决此类问题。或者换句话说,通过使您的 UI 设计适用于任何窗口大小。Windows 程序的一个非常常见的功能。只需在 Visual Studio 上尝试一下。拖动右下角的窗口,观察它如何处理可用空间较少但仍然可用的情况。许多 Winforms 功能可以帮助您执行此操作,例如 Control.Anchor 和 Dock 属性、FlowLayoutPanel 和 TableLayoutPanel 控件、用于棘手情况的 Resize 事件。
对此的 Q&D 修复是 Form.AutoScroll 属性。将其设置为 True 以允许 UI 仍然可用,滚动条允许用户仍然可以访问窗口外的控件。