自动缩放在winform应用程序中不起作用

时间:2013-04-24 08:08:52

标签: c# .net winforms

自动缩放属性无法正常工作。 WinForm是以高分辨率开发的。但是,当我们部署在较低版本的Windows XP中时,某些按钮未显示。

我在谷歌尝试过多次修改,但似乎没有任何效果。 这是我的winform配置。

this.AutoScaleDimensions = new System.Drawing.SizeF(grap.DpiX, grap.DpiY);
           // this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
            this.AutoSize = true;
            this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
            this.BackColor = System.Drawing.SystemColors.ControlLight;
            this.ClientSize = new System.Drawing.Size(1366, 50);
            this.DockTop = true;
            this.Font = new System.Drawing.Font("MS Reference Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));

建议如何解决这个问题可能会有所帮助。

2 个答案:

答案 0 :(得分:0)

由于控制的流动性,这就是问题所在。

要解决此问题,您需要以低分辨率设计表单(在进行表单设计时,必须保持其宽度和高度低于1024 * 768)。然后,您必须设置表单中每个控件的锚点属性,以定位其正确的位置。

例如:假设您的表单中有一个Datagridview,那么您必须将其Anchor属性设置为 Top,Bottom,Left,Right

为每个控件设置适当的Anchor属性将使表单中的控件在表单调整大小时被拉伸。

希望这会有所帮助:)

答案 1 :(得分:0)

在设置表单尺寸的过程中,表单尺寸受 Screen.GetWorkingArea 限制,而没有考虑 AutoScale

我解决了此问题,该问题存储了在 InitializeComponent()中设置的原始 ClientSize ,并在 HandleCreated 事件上将其自动缩放。

[object Object]