AutoScaling WinForm显示(小,中)

时间:2013-04-25 17:44:03

标签: vb.net winforms scaling dpi autoscalemode

首先,请原谅我,但由于我的Windows安装工作,我的截图是法语的。但它仍然很容易理解。我将包含屏幕截图,使其更具视觉吸引力。

以下是一些背景信息:

  • Windows 7 64位
  • Visual Studio 2010
  • 默认显示为100%
  • AutoScaleMode: DPI
  • AutoSize: True

Form properties

我的应用程序是一个以默认(小 - 100%)显示开发的Windows窗体。像这样: Small (default) display

如您所见,“小”或显示是默认选择。

小显示 - 100%(默认)

以下是我的应用程序在此设置中的外观。 这是正确的显示 Perfect display

中等显示 - 125%

红色矩形指出了不需要的空白区域。 Display at Medium or 125 percent

我试过了:

  • 锚定 / 停靠我的控件,例如我的拆分容器,表格布局面板,列表视图在Form_Load 通过用户界面。这没用。
  • 将拆分容器添加到表单中,并将所有控件分别分隔到其中
  • 添加表格布局面板,其中所有文本框和按钮都位于各自的单元格中

由于锚定和对接,我真的认为它存在缩放问题。虽然这似乎不是问题......看起来有问题的是Tab Control和Listviews ......

某些用户(大多数)将其设置设为默认设置(100%),但有一些用户将其设置为“中”设置,从而导致出现此缩放问题。有办法解决这个问题吗?

3 个答案:

答案 0 :(得分:2)

由于某种原因,我无法看到您的屏幕截图或链接,因此无法将问题直观化。如果缩放是问题,请尝试将AutoScaleMode设置为None

我最近不得不这样做,因为我的winform应用程序是图像密集型的,并且它无法在中等设置上正确呈现,因为我使用默认的小Settnigs显示来构建它。将缩放模式更改为None对我有用。

答案 1 :(得分:2)

我通过将标签控件和列表视图放在tablelayoutpanel中来解决我的问题。所有未经正确缩放的内容都必须放在TableLayoutPanel中。我保留AutoScaleModeDPIAutoSizeTrue

请务必将所有内容停靠在其父容器中。

这里是更直观的文档大纲(像我一样):

Outline

答案 2 :(得分:-1)

只需点击表单,然后转到属性窗格即可。找到Anchor元素,然后单击下拉列表。单击方形结构中的所有线条变为灰色。然后单击Enter。问题解决了。