我正在程序中创建一个面板(Panel)
,并向其中添加多个组件。
其中一个组件是一个标签(Label)
,它将包含用户生成的内容。
我不知道标签的高度应该是多少,但它的宽度是固定的。
如何设置高度以便显示所有文本,而不改变宽度?
只需使用AutoSize
属性,将其设置为True
。
将MaximumSize
属性设置为(60, 0)
,这样它就无法水平增长,只能垂直增长。
public SizeF MeasureString(
string text,
Font font,
int width
)
Graphics.FromHwnd(myLabel.Handle)
来获取 Graphics
对象。 - BrianMyLabel.MaximumSize = new Size(MyLabel.Width, 0)
MyLabel.Height = MyLabel.PreferredHeight
MyLabel.MaximumSize = new Size(0, 0)
Anchor
属性,使标签在水平方向上调整大小,但不影响垂直方向。在调整大小事件中,你可以使用上述方法来适应高度。bool _inVerticalFit = false;
if (_inVerticalFit) return;
_inVerticalFit = true;
MyLabel.MaximumSize = new Size(MyLabel.Width, 0)
MyLabel.Height = MyLabel.PreferredHeight
MyLabel.MaximumSize = new Size(0, 0)
_inVerticalFit = false;