我有一个C#WinForms应用程序,当我将可执行文件提供给不同的用户时,应用程序会以不同的大小显示(根据他们的屏幕分辨率)。无法看到应用程序的某些部分。
如何为表单设置绝对1280X800,并确保不论分辨率如何都不会更改表单大小!
答案 0 :(得分:2)
您可以使用Control.ScaleControl和Control.Scale
private void MainForm_Load( object sender, EventArgs e )
{
float width_ratio = (Screen.PrimaryScreen.Bounds.Width / 1280);
float heigh_ratio = (Screen.PrimaryScreen.Bounds.Height / 800f);
SizeF scale = new SizeF(width_ratio, heigh_ratio);
this.Scale(scale);
//And for font size
foreach (Control control in this.Controls)
{
control.Font = new Font("Microsoft Sans Serif", c.Font.SizeInPoints * heigh_ratio * width_ratio);
}
}
希望这有帮助。
答案 1 :(得分:2)
使用表单的MaximumSize属性。
form.MaximumSize = new Size(1280, 800);
如果您不希望用户将其设置为小于所需大小,也可以设置MinimumSize。
答案 2 :(得分:1)
答案 3 :(得分:1)
属性
Screen.PrimaryScreen.WorkingArea
对于表单大小调整和定位非常有用。例如这段代码:
this.Width = Screen.PrimaryScreen.WorkingArea.Width/2;
this.Height = Screen.PrimaryScreen.WorkingArea.Height/2;
this.Top = (Screen.PrimaryScreen.WorkingArea.Top + Screen.PrimaryScreen.WorkingArea.Height)/4;
this.Left = (Screen.PrimaryScreen.WorkingArea.Left + Screen.PrimaryScreen.WorkingArea.Width)/4;
会将执行该表单的表单放在屏幕中间,并将其调整为屏幕的一半。
WorkingArea var用于在计算屏幕大小时排除桌面上的任务栏和其他停靠项等内容。
希望这有帮助。