Cambiar el tamaño de los controles con la forma de cambiar el tamaño

He leído varias preguntas de desbordamiento de pila sin encontrar una buena solución de trabajo para mi problema. ¿Cómo puedo cambiar el tamaño de mis controles cada vez que se cambia el tamaño del formulario? Me gustaría que fueran más grandes o más pequeños cuando la forma fuera más grande o más pequeña.

En Visual Basic, esto era bastante fácil de hacer con la propiedad form.Zoom (que por supuesto no requería cambiar el tamaño de los controles, pero resolvió lo que necesitaba). Desafortunadamente, esto no está disponible en C # winforms.

Aquí hay algunas otras cosas que he intentado sin suerte:

private void formMain_Resize(object sender, EventArgs e)
{/*
double scale;
this.scaleWidth = (float)this.Width / (float)this.origWidth;
this.scaleHeight = (float)this.Height / (float)this.origHeight;
if (this.scaleHeight > this.scaleWidth)
{
    scale = this.scaleHeight;
}
else
{
    scale = this.scaleWidth;
}

foreach (Control control in this.Controls)
{
    control.Height = (int)(control.Height * this.scaleHeight);
    control.Width = (int)(control.Width * this.scaleWidth);
    this.Refresh();
    //  control.Font = new Font("Verdana", control.Font.SizeInPoints * heightRatio * widthRatio);
}
///////This scaling didnt work for me either
//this.Scale(new SizeF(this.scaleWidth, this.scaleHeight));
//this.Refresh();
*/
}

Si pasara por alto una realidadtrabajando Muestra de código en otra pregunta de desbordamiento de pila. Me encantaría verla, pero las que encontré fueron similares a las de arriba que no funcionan.

Quizás lo estaba haciendo mal y alguien podría publicar un código de ejemplo para mostrarlo a aquellos de nosotros que seguimos haciendo esta pregunta sobre cómo resolver el problema.

Además, he intentado usar algunas de las herramientas de anclaje / acoplamiento pensando que lo permitirían automáticamente, pero no fue así.

Respuestas a la pregunta(5)

Su respuesta a la pregunta