如何将textblock / textbox的高度设置为3行?

时间:2010-09-23 10:06:03

标签: wpf textblock

我可以设置固定高度(以像素为单位),但我想将其设置为直线。类似于html,您可以将textarea的高度设置为行数/行数。

3 个答案:

答案 0 :(得分:7)

对于TextBox,设置MinLines和MaxLines属性。要更好地逼近HTML textarea,请考虑如下设置TextWrapping,VerticalScrollBarVisibility和AcceptsReturn:

<TextBox TextWrapping="Wrap" VerticalScrollBarVisibility="Auto" AcceptsReturn="True" MinLines="3" MaxLines="3"/>

答案 1 :(得分:2)

解决方案1 ​​

您可以使用FormattedText来测量文本的大小,这是一个示例:

String text = "Here is my text";
Typeface myTypeface = new Typeface("Helvetica");
FormattedText ft = new FormattedText(text, CultureInfo.CurrentCulture, 
        FlowDirection.LeftToRight, myTypeface, 16, Brushes.Red);

Size textSize = new Size(ft.Width, ft.Height);

解决方案2

使用Graphics类(找到here):

System.Drawing.Font font = new System.Drawing.Font("Calibri", 12, FontStyle.Bold);
Bitmap bitmap = new Bitmap(1, 1);
Graphics g = Graphics.FromImage(bitmap);
SizeF measureString = g.MeasureString(text, font);

你在这里!

答案 2 :(得分:-3)

尝试3em

1em等于当前的字体大小。 2em意味着当前字体大小的2倍。例如,如果元素显示为12 pt的字体,则'2em'为24 pt。