【问题标题】:Windows Forms - ChildForm in panel is zoomed inWindows 窗体 - 面板中的 ChildForm 被放大
【发布时间】:2022-01-07 23:45:56
【问题描述】:

所以我有这段代码在面板中显示子窗体:

private Form activeForm = null;
private void openChildForm(Form childForm)
{
    if (activeForm != null)
    {
        activeForm.Close();
    }
    activeForm = childForm;
    childForm.TopLevel = false;
    childForm.FormBorderStyle = FormBorderStyle.None;
    childForm.Dock = DockStyle.Fill;
    panelChildForm.Controls.Add(childForm);
    panelChildForm.Tag = childForm;
    childForm.BringToFront();
    childForm.Show();
    labelVersion.BringToFront();
}

panel和form的尺寸完全一样(form因为有边框有点大,但是无边框的尺寸和panel一模一样)。但是由于某种原因,当我打开它时,它似乎放大了,我无法弄清楚。

【问题讨论】:

  • 这就是您所期望的。表单本身不再决定它的大小,它现在由面板大小固定。如果表单优雅地处理不断变化的窗口大小,那么在停靠在面板中时也将可见。或者可能是您的应用支持 dpiAware,并且表单会相应地重新缩放。
  • 嗯,奇怪的是:我现在开始工作了。我继续将表单的字体更改为 10,然后又改回 8,现在它非常适合。我真的不明白那里发生了什么,但我很高兴我现在可以开始工作了。
  • 啊,这就解释了。字体是一个“环境”属性,如果没有明确设置,那么它使用父字体。换句话说,它使用了 Panel 的字体。如果未设置(通常未设置),则使用面板父级的字体等。这通常是非常可取的,它确保所有控件使用相同的字体。
  • alrighttttt 然后解释它。感谢您的回答!

标签: c# winforms


【解决方案1】:

嗯,奇怪的是:我现在开始工作了。我继续将表单的字体更改为 10,然后又改回 8,现在它非常适合。我真的不明白那里发生了什么,但我很高兴我现在可以开始工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-28
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多