[英]C# Screen resolution and Form display
我有一个 C# WinForms 应用程序,当我将可执行文件提供给不同的用户时,应用程序以不同的大小显示(基于他们的屏幕分辨率)。 无法看到应用程序的某些部分。
无论如何根据屏幕分辨率自动调整 window 的大小,还是有其他方法?
编辑:此外,它出现在不同操作系统下的不同 styles 中,是否可以对其设计进行标准化?
听起来您已经为控件指定了绝对定位和其他布局默认值。 为了使 WinForms 应用程序在各种调整大小的情况下看起来和感觉都一样并且行为正确,您需要利用Anchor和Dock属性。 在 WinForms 中安排控件可能是一个累人的过程,但 MSDN 包含一些很好的How To 主题。
我还建议您阅读这篇TechRepublic 文章,该文章涵盖了锚定和对接之间的区别,并直观地向您展示了每个属性的作用:
您可以使用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);
}
}
开发平台分辨率为1280x800的情况下
根据@sixlettervariables 的回答,停靠和锚定当然会有所帮助。
尝试这个
private void MainForm_Load( object sender, EventArgs e )
{
this.Size = Screen.PrimaryScreen.WorkingArea.Size
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.