Як я можу додати новий рядок до тексту мітки у WPF, наприклад, наступний?
<Label>Lorem
ipsum</Label>
Відповіді:
<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
Lorem
Ipsum
у WPF ви можете використовувати значення " "
або"
"
Наприклад:
<Label Content="Lorem ipsum" />
("10" - номер ASCII для нового рядка)
або
<Label Content="Lorem
ipsum" />
("A" - номер ASCII для нового рядка у шістнадцятковій формі)
Роблячи це у ViewModel або Model, я виявив, що використання Environment.NewLine має найбільш послідовний результат, включаючи локалізацію. Він також повинен працювати безпосередньо у поданні, але я цього не тестував.
Приклад:
На вигляд
<Label Content="{Binding SomeStringObject.ParameterName}" />
У ViewModel:
SomeStringObject.ParameterName = "First line" + Environment.NewLine + "Second line";
Приклад того, як додати підказку з кількома рядками до елемента керування, наприклад кнопки. Підказка має обмежену ширину, тому вона обернеться, якщо речення буде занадто широким.
<!-- Button would need some properties to make it clickable.-->
<Button>
<Button.ToolTip>
<TextBlock Text="Line 1
Line 2" MaxWidth="300" TextWrapping="Wrap"/>
</Button.ToolTip>
</Button>
Перевірено на VS2019 + .NET 4.6.1 + WPF.
<TextBlock> <Run>First</Run> <LineBreak/> <Run>Second</Run> </TextBlock>