Windows窗体MinimumSize属性没有意义

时间:2018-07-24 18:35:49

标签: c# winforms

根据我自己的研究,这似乎与DPI情况(据说是重复的)不在同一类别。这种情况显然是我在下面提到的“ AutoScaleMode”和“ Font”属性设置的结果!

我最近开始使用Visual Studio 2017用C#编写一些代码。 我有一个表格,不想将其调整为小于特定大小的尺寸。 使用属性视图,我将表单的MinimumSize属性设置为该大小,但是当我运行它时,我可以将其调整为较小的大小。但是它确实有一个限制,我只是不知道它是如何确定该限制的。我在这里想念东西吗?

所以我尝试了一个简单的表单程序:

  • 一种形式
  • 最小表格尺寸设置为500 x 500
  • 表格原始尺寸设置为500 x 500
  • 表单上的一个标签
  • 一个处理程序,用于在调整大小时将表单的大小写到标签上

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_ResizeEnd(object sender, EventArgs e)
        {
            Size sz = this.Size;
            label1.Text = sz.Width + "x" + sz.Height;
        }
    }
}

当我运行此命令时,它的开头为324x232。 我能够将其调整为198x232。 我不明白有人可以解释一下吗?

1 个答案:

答案 0 :(得分:1)

所以我弄清楚了为什么最小尺寸不符合我的预期...

在窗体上还有另一个名为“ AutoScaleMode”的属性。如果将其设置为font,则整个窗体将根据在Font属性中选择的字体的大小进行缩放。在我的情况下,Font属性设置为“ Microsoft San Serfi 8.1pt”。将此设置更改为更大或更小的字体会相应地放大或缩小表单的最小大小。 AutoScaleMode属性的其他设置是“无”,“ Dpi”和“继承”。我将需要进行一些研究以准确了解所有这些工作原理,但是只要将其设置为“ None”就可以产生预期的结果。我只是不确定这将如何影响表单的其他操作。