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

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

81 голосов
/ 27 января 2009

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

<Label>Lorem 
  ipsum</Label>

Ответы [ 4 ]

112 голосов
/ 27 января 2009
<Label><TextBlock>Lorem<LineBreak/>ipsum</TextBlock></Label>

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

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

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

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

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

90 голосов
/ 01 октября 2013

в 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

6 голосов
/ 01 февраля 2016

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

Пример:

В представлении

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

В ViewModel:

SomeStringObject.ParameterName = "First line" + Environment.NewLine + "Second line";
0 голосов
/ 13 августа 2018

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

...