我有一个WinForms应用程序,该应用程序旨在支持Full HD分辨率(so 1920x1080)。现在,该应用程序还应该以较低的分辨率运行:1600x900。有没有办法让应用程序自动调整自身以适应较低的分辨率?就像您只是缩小图像大小一样,基本上是调整每个控件的大小并重新放置它们。我当前的表单和面板的大小设置为1900x1080,因此它们只是以较低的分辨率延伸到屏幕之外。我玩过AutoScaleModes和AutoSize,但是我能得到的最好的是滚动条,这样您至少可以浏览表单。是否有可能缩小应用程序的尺寸(保留控件的尺寸/相对大小和位置)?
在此先感谢您的任何输入!
如果主窗体以最大化模式启动,它将自动调整其大小。
但是(根据您的问题,这是一个很大的“但是”):内部控件不会像在智能手机上那样缩放。 WinForm不像WPF那样“基于矢量”。如果您有一个1920x1080的完全加载的窗体,则当缩小主窗体的尺寸时,控件将无法容纳,您将获得滚动条。
所以答案是:否
您要查找的属性称为Dock,它是控件的属性。
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.dock(v=vs.110).aspx
这基本上告诉控件如何填充可用空间。
创建与分辨率无关的应用程序不是一个简单的逻辑。窗口中的所有内容均应根据选定的分辨率进行调整。不仅控件的大小,还必须根据更改来更改字体大小。 Here是如何使用C#代码创建与分辨率无关的表格的示例。另一种方法是使用DevExpress工具。该工具提供了布局计数控件容器。您可以将每个控件放在单独的布局项目中,并分配控件的最小和最大大小。
该解决方案可用。
Form.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
和进行所有控制autosize = false
。根据您的意愿调整大小。