Как установить высоту textblock / textbox в 3 строки?
Я могу установить фиксированную высоту в пикселях, но я хотел бы установить ее в линиях. Как и в html, вы можете установить высоту текстового поля на количество строк / строк.
3 ответов
попробовать 3em
1em равно текущему размеру шрифта. 2em означает 2-кратный размер текущего шрифта. Например, если элемент отображается шрифтом 12 pt, то '2em' равно 24 pt.
для текстового поля задайте свойства MinLines и MaxLines. Чтобы лучше приблизить HTML textarea, рассмотрите также настройку TextWrapping, VerticalScrollBarVisibility и AcceptsReturn следующим образом:
<TextBox TextWrapping="Wrap" VerticalScrollBarVisibility="Auto" AcceptsReturn="True" MinLines="3" MaxLines="3"/>
Решение 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 (найдено здесь ):
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);
вот ты где !