Вопрос

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

<Label>Lorem 
  ipsum</Label>
Это было полезно?

Решение

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

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

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

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

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

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

Другие советы

в 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 или Model, я обнаружил, что использование Environment.NewLine дает наиболее последовательный результат, включая локализацию.Это также должно работать непосредственно в представлении, но я это не проверял.

Пример:

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

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

В модели представления:

SomeStringObject.ParameterName = "First line" + Environment.NewLine + "Second line";
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top