Windows 10 上的 Windows 窗体应用程序无法正确缩放

Windows Forms application on Windows 10 not scaling properly

提问人:Cleo 提问时间:5/12/2016 更新时间:2/23/2018 访问量:10648

问:

在 Windows 10 上运行我们的 Windows 表单应用程序之一时,GUI 看起来很糟糕,因为缩放似乎搞砸了。 以下是一些 1920x1080 的屏幕截图(请注意第二对的不同尺寸):Win 10

Win 7

Win 10

Win 7

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 上的外观完全相同?

WinForms 用户界面 Windows-10 缩放

评论


答:

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 是字体。