标签(Compact Framework)的实时大小
我指的是Visual Studio设计视图。 使用完整的.NET框架添加标签时,默认情况下, System.Windows.Forms.Label
控件的AutoSize
属性设置为True。 如果我将一个Label
控件拖放到表单上,则默认字体为“Microsoft Sans Serif,12pt,Regular”,控件的高度为20.将字体更改为(比如说)“Tahoma,14pt,Bold”和高度改为23.好。
但是在CF(Compact-Framework)中, Label
控件没有AutoSize
属性。 当我如上所述改变字体时, Label
的高度不变(保持在20),并且一些文字被切掉)。
我的问题是:在打开完整的.NET项目和测试我的字体选择之后,有没有办法知道在设计时什么高度来设置我的Label
?
您可以使用图形对象来测量字符串的高度,例如在Paint
事件或OnPaint
方法中:
Graphics g = e.Graphics;
float lineHeight = g.MeasureString(this.Text, this.Font).Height;
它可以用于继承标签。 例如,您可以重写OnPaint
方法或其他地方并执行此操作,然后它将在设计时运行。
更多资源:
coredll.dll
DrawText
.Net CF上查看Multi-Line Graphics.MeasureString。