以下是一个简单的示例,演示如何使 Label 和自定义控件根据 Panel 的大小进行缩放:

在窗体上添加一个 Panel 控件和一个 Label 控件:

private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Label label1;

this.panel1 = new System.Windows.Forms.Panel();
this.label1 = new System.Windows.Forms.Label();
this.panel1.Controls.Add(this.label1);
this.Controls.Add(this.panel1);

在 Panel 的 SizeChanged 事件中,根据 Panel 的大小来调整 Label 的大小和位置:

private void panel1_SizeChanged(object sender, EventArgs e)
{
    float labelWidth = this.panel1.Width * 0.8f; // 标签宽度为 Panel 宽度的 80%
    float labelHeight = this.panel1.Height * 0.6f; // 标签高度为 Panel 高度的 60%
    float labelFontSize = this.panel1.Height * 0.15f; // 标签字体大小为 Panel 高度的 15%

    this.label1.Location = new Point((int)(this.panel1.Width - labelWidth) / 2, (int)(this.panel1.Height - labelHeight) / 2);
    this.label1.Size = new Size((int)labelWidth, (int)labelHeight);
    this.label1.Font = new Font("Microsoft Sans Serif", labelFontSize);
}

现在,当 Panel 大小发生变化时,Label 的大小和位置将根据 Panel 的大小进行调整。

同样的,对于自定义控件,也可以在其 SizeChanged 事件中根据 Panel 的大小进行缩放和调整。

C# Panel 控件自适应缩放:Label 和自定义控件随 Panel 大小变化

原文地址: https://www.cveoy.top/t/topic/l48j 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录