我需要一种快速的方法来强制我的 C# Windows 窗体应用程序在用户在操作系统设置中选择更大或更小的百分比时不缩放字体。
这可能吗?
最佳答案
这是对我有用的...
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.Font = new System.Drawing.Font("Arial", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel, ((byte)(0)));
以上两行是从我的 BaseForm.Designer.cs 文件中复制的,但基本上我发现了两个简单的步骤来获得“无字体缩放”:
将 AutoScaleMode 设置为 None。
使用“像素”作为所有字体的单位类型,而不是默认点值。
至于是否应该让 Windows 缩放字体,这取决于您。我不喜欢这个设计,所以如果我觉得我的应用程序需要扩展,我会自己做,用我自己的选择和设计。
多年来与实际最终用户交谈,我还发现他们中的大多数人对 DPI 设置一无所知,如果他们有默认设置以外的任何设置,那并不是因为他们想要它方式......他们只是从来没有注意到,因为他们使用的只是网络浏览器,也许还有 Excel 和 Microsoft Word(它们使用他们设置的任何字体)。
如果我的应用程序尊重系统字体设置,他们就不会那么喜欢它 == 销量会减少,因为它会像系统对话框那样有这种巨大的丑陋字体(他们不知道如何更改它,但他们不关心他们从不使用的系统对话框)。
关于c# - 当用户为操作系统字体大小选择 125% 或 150% 时,如何强制 Windows 窗体 C# 应用程序忽略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4089237/