WPF Textblock, linebreak в атрибуте Text
Есть ли способ иметь \n
сделать разрыв строки в TextBlock
?
<TextBlock Text="line1\nLine2" />
Или есть лучший способ заставить средний разрыв строки внутри атрибута Text
?
<LineBreak />
Это не работает для меня, это должно быть значение атрибута Text
, потому что текстовая строка задается из внешнего источника.
Я знаком с LineBreak
, но это не тот ответ, который я ищу.
Ответы
Ответ 1
Я знаю, что это повторяет старый вопрос, но у меня была та же проблема. Решением для меня было использование кодированных строк в формате HTML (&#10;
).
Line1&#10;Line2
Похож на
Line1
Line2
Для большего количества символов, закодированных в HTML, выполните w3schools
Ответ 2
Попробуйте следующее:
<TextBlock>
line1
<LineBreak />
line2
</TextBlock>
Ответ 3
Самый простой способ -
<TextBlock> blabla <LineBreak /> coucou <LineBreak /> coucou 2 </TextBlock>
Итак, вы просто пишете XAML-код, а <LineBreak />
имеет то же значение, что и в HTML или "\n" на С#.
Ответ 4
<LineBreak/>
http://www.longhorncorner.com/UploadFile/mahesh/XamlLineBreak06092005152257PM/XamlLineBreak.aspx
Ответ 5
Как разбить строку на два тега?
<StackPanel>
<TextBlock Text="Line1" />
<TextBlock Text="Line2" />
</StackPanel>
Ответ 6
< LineBreak/ > не будет работать, если он находится внутри коллекции, такой как Grid или StackPanel.
В таких случаях будет работать, как показано:
![LineBreak inside a collection]()
Ответ 7
Правильный способ использования может быть следующим:
<TextBlock>
<Span>text1</Span>
<LineBreak/>
<Span>text2</Span>
</TextBlock>
Ответ 8
просто используйте элемент управления AccessText. вы можете использовать его как метку, и у вас есть свойство TextWrapping = "WrapWithOverflow"
например.
Моя так и работает нормально. Кроме того, у вас нет никаких проблем при изменении текста динамически.
Ответ 9
Я опаздываю на вечеринку, но..
это более или менее, как я это сделал (ум моих ItemSources - это простые строки, не отформатированные, и мне не нужно было "конвертировать" что-нибудь)
public class SpaceToLineBreakConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return (!String.IsNullOrEmpty(value as string))
? new Regex(@"\s").Replace(value as string, "\n")
: value;
}
public object ConvertBack(object value, Type targetType, object parameter,System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
Ответ 10
У меня была аналогичная проблема и я хотел связать String разметки xaml с TextBlock. Essentialy сохранение декларативной разметки внутри TextBlock в строке для последующего использования.
Вот как я сделал: я подклассифицировал TextBlock, чтобы сделать InlineCollection связным и написал конвертер между строкой и InlineCollection (или фактически общий список Inlines.)
Ответ 11
<HyperlinkButton
Content="Apply and restart this pplication! Note that modifying these settings requires the application to be restarted." />
CRLF простой способ = !
!
- Работайте со всеми элементами управления wpf, xaml, silverlight, такими как TextBlock, HyperlinkText и многое другое.
Ответ 12
Если вы привязываете TextBlock Text, ни один из других ответов не работает. Просто добавьте '\n' в текст привязки туда, где вы хотите сломать.