有没有一种简单的方法可以在 C# 中设置 Windows 窗体的缩放级别?在 VBA 中有表单的缩放属性。
WaterBoy
问问题
31660 次
3 回答
13
我遇到了同样的问题,我在 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
于 2008-11-17T16:25:37.430 回答
2
您可以通过为 Form 分配不同的Font来获得某种缩放,如果AutoScaleMode设置为 Font ,则所有控件都将相应地缩放。此外,将AutoSize设置为 False 将保持表单大小不变,控件将增长到表单的中心。您需要正确设置所有锚点并测试外观,因为它只是“一种缩放”。
所以基本上这里是示例构造函数:
public Form1()
{
InitializeComponent();
AutoSize = false;
AutoScaleMode = AutoScaleMode.Font;
Font = new Font("Trebuchet MS",
10.0f,
FontStyle.Regular,
GraphicsUnit.Point,
((byte)(204))
);
}
显示表单后分配新字体会弄乱所有控件,这个技巧将不起作用。
于 2013-06-14T12:18:11.583 回答
0
没有办法(据我所知)用典型的 WinForms 做你要求的事情。
如果您正在进行自定义绘画/绘图,则可以使用缩放变换来缩放它,但据我所知,在整个 .NET 世界和本机 Windows/C++ API 组合中,表单没有“缩放”属性.
您可能可以自己装配一些东西,以便按一个常数因子缩放控件。您可能会找到支持此功能的第 3 方控件/界面。谁知道 WPF 有什么可能。但在典型的 WinForms 世界中,没有。
于 2008-08-30T03:55:38.413 回答