在C#中缩放Windows窗体

时间:2020-03-05 18:45:18  来源:igfitidea点击:

有没有一种简单的方法可以在C#中设置Windows窗体的缩放级别?在VBA中,该表单具有zoom属性。

解决方案

回答

(我知道)无法用典型的WinForms完成我们所要求的工作。

如果我们要进行自定义绘画,则可以使用zoom变换对其进行缩放,但据我所知,在整个.NET和本机Windows / C ++ API的组合中,表单没有" Zoom"属性。

我们可能会自己装配一些东西,以便按恒定比例缩放控件。我们可能会找到支持此功能的第三方控件/表面。谁知道WPF有什么可能。但是在典型的WinForms世界中,没有。

回答

我有同样的问题,我在C#中以这种方式解决了。代码进入表格加载

float scaleX = ((float)Screen.PrimaryScreen.WorkingArea.Width / 1024);
float scaleY = ((float)Screen.PrimaryScreen.WorkingArea.Height / 768);
SizeF aSf = new SizeF(scaleX, scaleY);
this.Scale(aSf);

这个"或者多或者少"的秤量表和所有孩子。永远以800x600(?)循环播放
我们必须设置以下表单属性:

AutoscaleMode = Font
AutoSize = False