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

问题描述 投票:3回答:4

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

在此先感谢您的任何输入!

c# winforms autosize autoscaling
4个回答
1
投票

如果主窗体以最大化模式启动,它将自动调整其大小。

但是(根据您的问题,这是一个很大的“但是”):内部控件不会像在智能手机上那样缩放。 WinForm不像WPF那样“基于矢量”。如果您有一个1920x1080的完全加载的窗体,则当缩小主窗体的尺寸时,控件将无法容纳,您将获得滚动条。

所以答案是:否


0
投票

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

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

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


0
投票

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


0
投票

该解决方案可用。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.