有没有办法在\n
a 中换行TextBlock
?
<TextBlock Text="line1\nLine2" />
Text
或者有没有更好的方法在属性内强制中间换行?
<LineBreak />
这对我不起作用,它必须是Text
属性的值,因为文本字符串是从外部来源设置的。
我很熟悉,LineBreak
但这不是我正在寻找的答案。
试试这个:
<TextBlock>
line1
<LineBreak />
line2
</TextBlock>
我知道这是在复活一个老问题,但我遇到了同样的问题。我的解决方案是使用 HTML 编码的换行符 ( &#10;
)。
Line1&#10;Line2
好像
线1 线
2
有关更多 HTML 编码字符,请查看w3schools
最简单的方法是
<TextBlock> blabla <LineBreak /> coucou <LineBreak /> coucou 2 </TextBlock>
因此,您只需编写 XAML 代码,在 HTML 中或 C# 中的“\n”<LineBreak />
具有完全相同的含义。
<LineBreak/>
http://www.longhorncorner.com/UploadFile/mahesh/XamlLineBreak06092005152257PM/XamlLineBreak.aspx
<LineBreak/> 如果它位于 Grid 或 StackPanel 等集合中,它将不起作用。在这种情况下,如下所示将起作用:
将行分成两个标签怎么样?
<StackPanel>
<TextBlock Text="Line1" />
<TextBlock Text="Line2" />
</StackPanel>
正确的使用方法可能如下:
<TextBlock>
<Span>text1</Span>
<LineBreak/>
<Span>text2</Span>
</TextBlock>
<HyperlinkButton
Content="Apply and restart this pplication! Note that modifying these settings requires the application to be restarted." />
CRLF 简单方法 =!
!
- 处理所有 wpf、xaml、silverlight 控件,如 TextBlock、HyperlinkText 等
对我来说在同一个文本块中处理多行的最佳方法是:
<TextBlock>
text1
<LineBreak/>
text2
</TextBlock>
确保不使用 TextWrapping="Wrap"。使用 TextWrapping="NoWrap" 或不使用任何内容。
如果您正在绑定 TextBlock 的文本,则其他答案都不起作用。只需将 '\n' 添加到要中断的绑定文本中。
我迟到了,但是..这或多或少是我做的,(请注意我的 ItemSources 是纯字符串,没有格式化,我不需要'convertBack'任何东西)
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();
}
}
这也可以正常工作:
<TextBlock>
<Run Text="My nice text"/>
<LineBreak/>
<LineBreak/>
<Run Text="After some linebreaks, I'm back!"/>
</TextBlock>
当我使用绑定时,这&#10;
对我不起作用。但这有效:
$"first line {Environment.NewLine} second line"
只需使用 AccessText 控件。您可以像使用标签一样使用它,并且您拥有 TextWrapping="WrapWithOverflow" 属性
例如。
我的就是这样,而且工作正常。此外,您在动态更改文本方面没有任何问题。
我遇到了类似的问题,想将 xaml 标记的字符串绑定到 TextBlock。本质上将声明性标记存储在字符串中的 TextBlock 中以供以后使用。
我就是这样做的:我将 TextBlock 子类化以使 InlineCollection 可绑定,并在字符串和 InlineCollection 之间编写了一个转换器(或者实际上是一个通用的内联列表。)
这也很好用。
使用这种方法,我们可以根据需要修改每一行中的文本属性。
<TextBlock>
<StackPanel>
<TextBlock FontSize="12" FontWeight="Bold" >My Text One</TextBlock>
<TextBlock FontFamily="Times New Roman" FontStyle="Italic">
- My Text Two
</TextBlock>
</StackPanel>
</TextBlock>