如何自动调整标签的高度而不是宽度

Mal*_*ist 30 .net c# winforms

我有一个Panel我正在以编程方式创建; 另外我要添加几个组件.

其中一个组件是Label包含用户生成内容的组件.

我不知道标签应该有多高,但它确实有一个固定的宽度.

如何设置高度以便显示所有文本而不更改宽度?

Han*_*ant 68

只需使用该AutoSize属性,将其重新设置为True.

例如,将MaximumSize属性设置为(60, 0)不能水平增长,只能垂直增长.

  • 如果接缝不起作用,请检查'borderStyle'是否设置为'none'.也许你想修复甚至最小尺寸(例如(60,13)对于固定宽度的单行(因为MinimumSize.Width = MaximumSize.Width = 60)). (2认同)

Bri*_*ian 5

用途Graphics.MeasureString:

public SizeF MeasureString(
    string text,
    Font font,
    int width
)
Run Code Online (Sandbox Code Playgroud)

width参数指定返回的SizeF结构的宽度组件的最大值(宽度).如果width参数小于字符串的实际宽度,则返回的Width组件将截断为表示适合指定宽度的最大字符数的值.为了容纳整个字符串,返回的Height组件将调整为允许显示带字符换行的字符串的值.

换句话说,此函数可以根据宽度计算字符串的高度.

  • Fwiw,如果你做这样的测量,那么你应该使用TextRenderer.MeasureText().Graphics.DrawString()已经过时,并且不会产生相同的输出.从技术上讲,必须使用UseCompatibleTextRendering属性在两者之间进行选择.痛苦. (2认同)