Si usted tiene una etiqueta y que desea tener el control sobre la el ajuste vertical, se puede hacer lo siguiente:
MyLabel.MaximumSize = new Size(MyLabel.Width, 0)
MyLabel.Height = MyLabel.PreferredHeight
MyLabel.MaximumSize = new Size(0, 0)
Esto es útil, por ejemplo, si tiene una etiqueta en un envase que se puede cambiar de tamaño . En ese caso, puede establecer la propiedad Anchor
para que la etiqueta se cambie de tamaño horizontalmente pero no verticalmente, y en el evento de cambio de tamaño, puede ajustar la altura utilizando el método anterior.
Para evitar el ajuste vertical para ser interpretado como un nuevo evento de cambio de tamaño, se puede utilizar un valor lógico:
bool _inVerticalFit = false;
Y en el caso de cambio de tamaño:
if (_inVerticalFit) return;
_inVerticalFit = true;
MyLabel.MaximumSize = new Size(MyLabel.Width, 0)
MyLabel.Height = MyLabel.PreferredHeight
MyLabel.MaximumSize = new Size(0, 0)
_inVerticalFit = false;
+1. Mucho más simple que mi sugerencia. – Brian
Seleccionada como la respuesta debido a la simplicidad, la respuesta de Brian también es perfectamente buena, pero esta es más fácil de entender y mantener. – Malfist
¿Qué pasa si necesito un ancho de fluido? – Robin