C#屏幕分辨率和表格显示

时间:2011-06-28 17:43:28

标签: c# .net winforms

我有一个C#WinForms应用程序,当我将可执行文件提供给不同的用户时,应用程序会以不同的大小显示(根据他们的屏幕分辨率)。无法看到应用程序的某些部分。

无论如何根据屏幕分辨率自动调整窗口大小,还是有另一种方法?

编辑:此外,它在不同的操作系统下以不同的样式出现,是否可以将其设计标准化?

3 个答案:

答案 0 :(得分:5)

听起来您已经使用绝对定位和其他布局默认值指定了控件。为了使WinForms应用程序在各种大小调整方案中看起来和感觉相同并且行为正确,您需要使用AnchorDock属性。在WinForms中安排控件可能会很累人,但MSDN包含一些不错的How To's on the subject

我还建议您继续使用此TechRepublic article, which covers the difference between Anchoring and Docking,并直观地向您展示每个属性的完成情况:

Anchoring example from the TechRepublic Article

答案 1 :(得分:4)

您可以使用Control.ScaleControlControl.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的回答停靠和锚定当然会有所帮助。

答案 2 :(得分:0)

试试这个

private void MainForm_Load( object sender, EventArgs e ) 
  { 
     this.Size = Screen.PrimaryScreen.WorkingArea.Size 
  }