Новая строка в WPF-метке?


Как я могу добавить новую строку в текст метки в WPF, например, следующее?

<Label>Lorem 
  ipsum</Label>
4 75

4 ответа:

<Label><TextBlock>Lorem<LineBreak/>ipsum</TextBlock></Label>

вам нужно использовать TextBlock, потому что TextBlock принимает в качестве дочерних коллекцию встроенных объектов. Таким образом, вы даете элементу TextBlock три встроенных элемента: Run Text="Lorem", LineBreak и Run Text="ipsum".

вы не можете сделать следующее:

<Label>Lorem<LineBreak/>ipsum</Label>`

потому что метка принимает один дочерний элемент содержимого.

кроме того, не уверен, что именно ваш вариант использования, но обратите внимание, что я поместил TextBlock внутри элемента Label. Это повторяется? Не действительно, в зависимости от ваших потребностей. Вот хорошая статья о различиях между двумя элементами: разница между меткой и TextBlock

в WPF вы можете использовать значение "&#10;" или "&#xA;"

например:

<Label Content="Lorem&#10;ipsum" />

("10" - это номер ASCII для новой строки)

или

<Label Content="Lorem&#xA;ipsum" />

("A" - это номер ASCII для новой строки в шестнадцатеричном формате)

Example, with a border arround label to show boundry

при выполнении этого в ViewModel или модели, я обнаружил, что с помощью среды.Новая линия имеет наиболее последовательный результат, включая локализацию. Он также должен работать непосредственно в представлении, но я этого не проверял.

пример:

по мнению

<Label Content="{Binding SomeStringObject.ParameterName}" />

в ViewModel:

SomeStringObject.ParameterName = "First line" + Environment.NewLine + "Second line";

Я понимаю, что новые строки работают в текстовом блоке. Однако если вы хотите новую строку в метке, как указано в вопросе, используйте это в своей строке. У меня есть пробелы между ними, потому что в противном случае он не позволит мне опубликовать последовательность в этом комментарии. & # х ; Используйте эти 5 символов вместе без пробелов, чтобы получить новую строку, которую вы ищете.