2016-09-07 64 views
0

我有一个问题,当我调试我的应用程序它不符合我在设计器中设置的大小。我试图将表单的最小尺寸设置为理想的值。Form1的视觉大小不匹配Form1的调试视觉大小

该表格是用分体面板构建的,面板停靠在每边的填充处。 标签具有默认锚点。文本框有锚,左,右,右。 按钮左上角有锚。

如果我在运行期间将底部向下拖动,我得到我想要的大小/设计,但为什么它不像这样开始,我该如何解决它?

Forms

+0

什么是属性窗口(F4)中的大小号码? – zchpit

+0

1189,895和最小尺寸1189,895 –

+0

您是否在代码中调整大小?另请参阅formborderstyle属性 – Aimnox

回答

1

你看上去相当高的分辨率的屏幕上工作。 Windows窗体对于缩放内容并不是很好,并且具有您需要注意的各种怪癖。如果可能的话,我会转向WPF,但如果您确实需要继续使用Windows窗体,那么应该这样做。

  • 在主窗体上使用AutoScaleMode.Dpi。当显示器的DPI高于默认值96(100%)时,它将按比例缩放和重新定位控件以符合您的设计。你也可以尝试AutoScaleMode.Font,但如果你使用默认的字体(Tahoma 8,25 pt或类似的东西),它可能无法正常工作。
  • 使用TableLayoutPanelFlowLayoutPanel可使定位控制更容易。 FlowLayoutPanel可以水平或垂直动态地放置你的控件。如果您熟悉WPF或Windows Phone开发,那么它基本上是一个StackPanel控件。
  • 确保您的屏幕DPI为96(100%),并在整个开发过程中保持不变。您仍然必须确保在其他DPI上测试该应用程序,以便具有不同设置的用户将能够使用您的应用程序。

以下是关于DPI缩放的更多信息:

编辑: Visual Studio的Windows窗体设计显示了使用不同的主题形式比你的Windows版本o这是你的表单在运行时看起来不同的原因之一。在运行时,表单使用当前运行应用程序的操作系统的主题。

+1

我发现使用TableLayoutPanel或FlowLayoutPanel可能会在计算机上打开项目时使用另一个分辨率而不是首次创建的分辨率,从而导致您的窗体在设计时产生混乱。在运行时,表单再次OK,但在设计时它看起来非常难看。我通过使用大量正常面板和dock属性(不是锚!)解决了这个问题。它需要更多的工作,是的,它的老学校,但它的工作 – GuidoG

+0

@GuidoG你说得对,Windows窗体应用程序可以真的给你的脸上带来一些惊喜,这就是其中之一。我想OP的结论是,有很多方法可以尝试解决这种情况,但有了各种支持的Windows版本和不同的显示器,很难找到适用于任何地方的完美解决方案。幸运的是我们有WPF! – hankide

+0

Hankide是的,但是我正在维护一个包含超过50个表格和MDI需求的项目。在这些情况下,WPF并不是非常有用。除非它已经完成了进化,我从2013年以来没有看过它? – GuidoG