提问人:Cleo 提问时间:5/12/2016 更新时间:2/23/2018 访问量:10648
Windows 10 上的 Windows 窗体应用程序无法正确缩放
Windows Forms application on Windows 10 not scaling properly
问:
在 Windows 10 上运行我们的 Windows 表单应用程序之一时,GUI 看起来很糟糕,因为缩放似乎搞砸了。
以下是一些 1920x1080 的屏幕截图(请注意第二对的不同尺寸):
Windows 10 显示设置中的缩放选项设置为 100%(因此不应应用额外的缩放)。 此外,以下代码在程序启动时执行:
static void Main()
{
if (Environment.OSVersion.Version.Major >= 6) //Windows Vista and higher
SetProcessDPIAware(); //disable DPI scaling (or something like that) to avoid scaling problems on Windows 10
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(Hauptmenue.Instance);
}
此代码块有一点帮助,因为它在没有 Windows 10 的情况下看起来要糟糕得多。 但这还不够好......有谁知道如何“恢复”GUI 以使其与 Windows 7 或 8 上的外观完全相同?
答:
5赞
Alexej Sommer
5/12/2016
#1
尝试将 Windows 7 和 Windows 8 上的设置更改为 100%。我不认为这是 Windows 10 的问题。这可能是因为 Windows 10 中的默认设置不同。
可以尝试“播放”AutoScaleMode 枚举。
尝试将窗体的模式设置为“无”或“Dpi”,如下所述:
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
另请阅读此 SO 问题中有关在不同控件中缩放的答案。
评论
3赞
Cleo
5/13/2016
谢谢,AutoScaleMode 将我引向了正确的解决方案。我已将其设置为所有表单的“Dpi”,现在它看起来更好了。另一个需要更改的是字体:我注意到我们的默认字体“Microsoft Sans Serif”在 Windows 10 上显示得更大,这也导致了问题,所以我将其更改为 Arial,它在 Windows 7 和 10 上具有相似的大小。
0赞
user2761981
11/1/2017
#2
我也有类似的问题。某些组框在 Windows 窗体应用程序上显示得太宽。它适用于 Windows 7 笔记本电脑,但不适用于 Windows 10 笔记本电脑。
在 Windows 125 上将 DPI 缩放比例从 100% 设置为 10% 对我有用。AutoSizeScaleMode 是字体。
评论