【发布时间】:2013-02-14 12:54:36
【问题描述】:
我有一个显示为模式对话框的表单。表单在设计器中如下所示:
(宽度 = 360,高度 = 215)
当它显示在应用程序中时,它会比定义的高和宽 10 像素,在底部和左侧边缘留下很大的边距:
(宽度 = 370,高度 = 225)
表单的尺寸被明确设置为 360x215 像素,边框样式为 FixedDialog,继承自 System.Windows.Forms.Form,并且其中没有用于操作尺寸的代码(自动生成的设计器除外文件)。如果我将边框样式更改为FixedSingle 或FixedToolWindow,它会显示正确的大小(但我希望它的样式为FixedDialog)。
知道是什么原因造成的吗?
我已通过删除表单上的 MinimumSize 设置来解决此问题。看来,如果将其设置为与 Size 属性相同的大小(或接近,但我还没有完全找到阈值),则会引入边距。由于表单不可调整大小,我不需要设置 MinimumSize 以便将其删除。
我还是不明白为什么会这样。
【问题讨论】:
-
是否设置了 max 或 min 属性?
-
@CR41G14: 是的,
Size、MinimumSize和MaximumSize都设置为360, 215。 -
出于好奇,它是否总是被提高到 370x225(无论您使用什么起始尺寸),还是总是在每边添加 10 个像素?您是否尝试过其他窗口大小只是为了查看结果?
-
@jszigeti:不管起始尺寸是多少,它总是增加 10 个像素。
-
嗯,奇怪,这一定是环境因素。您可以永远指望获得固定大小,该值受主题自定义的影响,例如标题栏字体大小。 Winforms 仅尝试保留 ClientSize。我唯一能想到的是 DpiAware manifest 属性,它可能在设计器和您的程序之间不匹配。
标签: c# .net winforms windows-forms-designer