Как установить высоту текстового блока / текстового поля в 3 строки? - PullRequest
8 голосов
/ 23 сентября 2010

Я могу установить фиксированную высоту в пикселях, но я бы хотел установить ее в строках.Вроде как в html вы можете установить высоту текстовой области равной количеству строк / строк.

Ответы [ 3 ]

7 голосов
/ 14 января 2016

Для TextBox, установите свойства MinLines и MaxLines. Чтобы лучше приблизиться к текстовой области HTML, рассмотрите также настройку TextWrapping, VerticalScrollBarVisibility и AcceptsReturn следующим образом:

<TextBox TextWrapping="Wrap" VerticalScrollBarVisibility="Auto" AcceptsReturn="True" MinLines="3" MaxLines="3"/>
2 голосов
/ 24 сентября 2010

Решение 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);

Вот, пожалуйста!

0 голосов
/ 23 сентября 2010

Try 3em

1em равно текущему размеру шрифта.2em означает 2-кратный размер текущего шрифта.Например, если элемент отображается шрифтом 12 пунктов, то значение 2em равно 24 пунктам.

...