Как я могу принудительно перенести текст в текстовый блок WPF

Я использую TextBlock как таковой:

<TextBlock Text="HelloWorld" Width="600" />

Как я могу отобразить текст на двух строках:

Hello
World

Могу ли я использовать специальный символ переноса строки, например следующий?

<TextBlock Text="Hello\nWorld" Width="600" />

Я не хочу изменять ширину TextBlock, потому что я не хочу использовать алгоритм автоматического переноса текста, например TextWrapping = "Wrap" или TextWrapping = "WrapWithOverflow": я хочу иметь возможность указывать в самой строке, где он должен заключаться .


person Arnaud Weil    schedule 01.08.2013    source источник


Ответы (3)


Если вы используете LineBreak, он должен делать то, что вы хотите.

<TextBlock>
    Hello<LineBreak/>World
</TextBlock>

Вы также можете использовать:

<TextBlock Text="Hello&#x0a;World" />
person Arhiman    schedule 01.08.2013

Вы можете установить свойство TextBlock Inlines вместо Text:

<TextBlock>
    <TextBlock.Inlines>
        <Run Text="Hello"/>
        <LineBreak/>
        <Run Text="World"/>
    </TextBlock.Inlines>
</TextBlock>

что является явной формой ответа пользователя mcalex.

person Clemens    schedule 01.08.2013

Пытаться:

<TextBlock>
  First line
  <LineBreak />
  Second line
</TextBlock>
person mcalex    schedule 01.08.2013
comment
@ArnaudWeil Я думаю, вы обнаружите, что ответ Архимана на самом деле такой же, как мой, с дополнительным использованием. - person mcalex; 01.08.2013