当用户将显示设置为中 (125%) 时,文本框/表单项被截断

use*_*829 1 c# vb.net winforms

我有一个用 VB.net 编写的Windows 窗体应用程序。我的用户告诉我,当他们转到“控制面板”>“显示”并将“文本大小”设置为“中”(125%) 时,表单上的文本框和下拉框会被截断。我已将表单上的AutoScaleMode设置为 DPI,但这没有帮助。有任何想法吗?

Dav*_*jas 5

您可以采取几种不同的方法:

  1. 将所有表单和用户控件上的 AutoScaleMode 设置更改为“无”,并确保您的标签等足够长以在最常见的 DPI 设置中处理您的 UI 文本。例如,测试各种 DPI - 如果它适用于 100%、125% 和 150%,您将处于良好状态。

  2. 切换到 WPF(说起来容易做起来难)。

  3. 尝试让它在 AutoScaleMode 设置为 DPI 的情况下工作 - 这很难做到 - 如果你研究这个,你会发现让它正常工作并非易事。

  • +1 表示“切换到 WPF”。这是任何 Winforms 开发人员的唯一希望。顺便说一句,从头开始在 WPF 中完成整个应用程序可能更容易(也更快),试图从 winforms 中获取任何有用的东西。 (2认同)
  • WinForms 有点无聊,但我认为它总体上是有效的——你只需要知道微软没有解决什么问题就可以正常工作(比如 AutoScaleMode)。 (2认同)