Как разместить текст в текстовом блоке в WPF

У меня есть строка, которую я должен отображать в TextBlock, мой TextBlock имеет фиксированный размер, мне нужно отображать текст таким образом, если строка не помещается в TextBlock, тогда мне нужно разделить строку в следующем TextBlock, как я могу сделать то же самое .


person Firoz    schedule 02.12.2009    source источник


Ответы (2)


Почему бы вам не попробовать использовать свойство TextWrapping этого TextBlock?

XAML:

<TextBlock TextWrapping="Wrap" Text="very very very long text" Width="30"/>

C#:

myTextBlock.TextWrapping = TextWrapping.Wrap;
person Marcel B    schedule 02.12.2009
comment
мой TextBlock имеет фиксированную ширину, а также фиксированную высоту, если я использую перенос слов, он будет работать для ширины, но не для высоты. - person Firoz; 02.12.2009
comment
В этом случае я бы предложил текстовый блок, который переносится и имеет вертикальную прокрутку - комбинацию обоих наших ответов. - person MoominTroll; 02.12.2009
comment
Действительно ли необходимо, чтобы ваш TextBlock имел фиксированную высоту? Не могли бы вы опубликовать код из своего определения пользовательского интерфейса? - person Marcel B; 02.12.2009

Если вы не хотите переноса, то использование горизонтальной/вертикальной полосы прокрутки — еще один вариант, который вы можете изучить. Читая вопрос, я думаю, что перенос текста может быть более подходящим (не похоже, что вы хотите что-то скрыть), но варианты всегда хороши.

<ScrollViewer Height="30">
    <TextBlock Width="30" TextWrapping="Wrap">HElooooooooooooooooooooooooooooooooooooo</TextBlock>
</ScrollViewer>

РЕДАКТИРОВАТЬ: сочетает перенос слов и просмотрщик прокрутки.

person MoominTroll    schedule 02.12.2009
comment
Хорошая идея, но если текстовый блок маленький, это будет выглядеть странно. - person Marcel B; 02.12.2009
comment
Верно, но width=30 и height=30 — совершенно произвольные значения, которые подходят для этого небольшого примера. Если текстовый блок в пользовательском интерфейсе действительно крошечный, но должен содержать много текста, то я бы сказал, что виноват дизайн пользовательского интерфейса. - person MoominTroll; 02.12.2009