Windows窗体:自动缩放应用程序

时间:2014-03-03 10:42:17

标签: c# winforms autosize autoscaling

我有一个WinForms应用程序,旨在支持全高清分辨率(所以1920x1080)。现在这个应用程序也应该运行在较低的分辨率:1600x900。 有没有办法让应用程序自动缩放以适应较低的分辨率?就像你只需缩小图像一样,基本上调整每个控件的大小和重新定位。 我当前的表单和面板已将其大小设置为1900x1080,因此它们只是在较低分辨率下延伸出屏幕。 我玩过AutoScaleModes和AutoSize,但我能得到的最好的是Scrollbars,这样你至少可以浏览表单。是否可以降低应用程序的尺寸(保留尺寸/相对尺寸和控件的位置)?

提前感谢您对此的任何意见!

4 个答案:

答案 0 :(得分:1)

如果您的主表单以最大化模式启动,它将自动调整其大小。

但是(根据你的问题,这是一个巨大的“但是”):内部控件不会像你在智能手机上看到的那样缩放。 WinForm不是WPF的“基于矢量”。如果您在1920x1080中有一个完全加载的表单,当主窗体的大小缩小时,控件将不适合您将获得滚动条。

所以答案是:不。

答案 1 :(得分:0)

您要查找的属性称为Dock,它是控件的属性。

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.dock(v=vs.110).aspx

这基本上告诉控件如何填充可用空间。

答案 2 :(得分:0)

创建独立于分辨率的应用程序并不是一个简单的逻辑。应根据所选分辨率调整窗口中的所有内容。不仅控件的大小,您还必须根据更改来更改字体大小。 Here是如何使用C#代码创建独立于分辨率的表单的示例。另一种方法是使用DevExpress工具。此工具提供布局控制容器。您可以将每个控件放在单独的布局项中,并指定控件的最小和最大大小。

答案 3 :(得分:0)

解决方案可用。

Form.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;

和 进行所有控制autosize = false。 调整您的愿望大小。