C# Panel 控件自适应缩放:Label 和自定义控件随 Panel 大小变化
以下是一个简单的示例,演示如何使 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 的大小进行缩放和调整。
原文地址: https://www.cveoy.top/t/topic/l48j 著作权归作者所有。请勿转载和采集!