Как узнать количество строк в StiText?

Обсуждение Stimulsoft Reports.NET
Ответить
misurevigor
Сообщения: 17
Зарегистрирован: 28 июн 2013, 12:13

Как узнать количество строк в StiText?

Сообщение misurevigor »

Здравствуйте!
Подскажите, как узнать количество строк в StiText?

Спасибо!
Edward
Сообщения: 930
Зарегистрирован: 09 июн 2006, 12:23

Re: Как узнать количество строк в StiText?

Сообщение Edward »

Здравствуйте, Игорь.

Как вариант, возможно после построения StiText узнать его высоту при установленных свойствах CanGrow и WordWrap. Возможно у Вас какая-то задача, которую можно решить встроенными средствами генератора отчетов или изменить порядок вывода компонентов? Вы не могли бы более подробно описать тот результат, которого нужно достичь?

И ответ на вопрос зависит от режима рендеринга StiText (WYSIWYG, Typographic, etc.)

Спасибо,
Эд
misurevigor
Сообщения: 17
Зарегистрирован: 28 июн 2013, 12:13

Re: Как узнать количество строк в StiText?

Сообщение misurevigor »

Здравствуйте!
Режим рендеринга: Typographic.
CanGrow и WordWrap включены.
Задача размещать многострочный текст, чтобы не было, скажем так, "висячих" строк (например, когда в первой строке 7 слов, а во второй одно).
Хочется самому переносить текст, так как мне нужно, чтобы выглядело красивее :)

Спасибо!
misurevigor
Сообщения: 17
Зарегистрирован: 28 июн 2013, 12:13

Re: Как узнать количество строк в StiText?

Сообщение misurevigor »

StiTextRenderer.GetTextLines - выдает буквы массивом
Может быть есть какой-нибудь другой вариант, который будет выдавать строки?
Edward
Сообщения: 930
Зарегистрирован: 09 июн 2006, 12:23

Re: Как узнать количество строк в StiText?

Сообщение Edward »

Здравствуйте, Игорь.

Количество строк, наверное, придется считать вручную.

Посмотрите, пожалуйста, методы расчета длины строки:
StiStandardTextRenderer.MeasureString(double maxWidth, Font font, StiText textBox)
и у StiText возможно использовать метод расчета его длины - GetActualSize(), если установлено одно из следующих его свойств:
CanGrow, CanShrink или autoWidth.

Спасибо,
Эд
Ответить