WPF Textblock,Text属性中的换行符

Sco*_*ate 84 wpf textblock

有没有办法\n让一个换行TextBlock

<TextBlock Text="line1\nLine2" />
Run Code Online (Sandbox Code Playgroud)

或者是否有更好的方法来强制中间线中断,在Text属性中?

<LineBreak />
Run Code Online (Sandbox Code Playgroud)

这对我不起作用,它必须是Text属性的值,因为文本字符串是从外部源设置的.

我很熟悉,LineBreak但这不是我正在寻找的答案.

Pau*_*der 117

试试这个:

<TextBlock>
    line1
    <LineBreak />
    line2
</TextBlock>
Run Code Online (Sandbox Code Playgroud)

  • 资本化问题.这是<LineBreak />. (3认同)
  • 还没有直接尝试过这个,但我突然想到你可以尝试 xml:space="preserve" ,然后直接在 Text 属性中嵌入换行符。 (2认同)

Noa*_*aki 111

我知道这是在重新提出一个老问题,但我遇到了同样的问题.我的解决方案是使用HTML编码的换行符(&amp;#10;).

Line1&amp;#10;Line2
Run Code Online (Sandbox Code Playgroud)

好像

Line1
Line2

对于更多的HTML编码字符,请查看w3schools

  • @Knasterbax如果文本被指定为`<TextBlock>`和`</ TextBlock>之间的内容那么是的,你需要`<LineBreak />`.`&#10;`在`Text`属性中工作:`<TextBlock Text ="..."/>` (16认同)
  • 不适合我.<LineBreak />有效 (5认同)
  • 对我来说,Environment.NewLine来自c#代码. (4认同)
  • "&#10;" 为我工作.我不需要"&amp;" 如上所述.设置文本时此方法也适用:<Setter Property ="Text"Value ="Line 1&#10;&#10; Line 2"/> (4认同)

小智 10

最简单的方法是

<TextBlock> blabla <LineBreak /> coucou <LineBreak /> coucou 2 </TextBlock>

所以你只需要编写XAML代码,它与HTML中的<LineBreak />含义
或C#中的"\n" 完全相同.

  • 重复保罗·亚历山大的答案。 (3认同)

小智 6

对于同一文本块中的多行,最适合我的方法是:

<TextBlock>  
    text1  
    <LineBreak/>  
    text2  
</TextBlock>
Run Code Online (Sandbox Code Playgroud)

确保不要使用 TextWrapping="Wrap"。使用 TextWrapping="NoWrap" 或不使用任何内容。


Cam*_*and 5

把线分成两个标签怎么样?

<StackPanel>
    <TextBlock Text="Line1" />
    <TextBlock Text="Line2" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)


rad*_*scu 5

正确的使用方法可能如下:

<TextBlock>  
    <Span>text1</Span>  
    <LineBreak/>  
    <Span>text2</Span>  
</TextBlock>
Run Code Online (Sandbox Code Playgroud)


小智 5

  <HyperlinkButton 
        Content="Apply and restart this pplication!&#10;&#13;Note that modifying these settings requires the application to be restarted."   />
Run Code Online (Sandbox Code Playgroud)

CRLF 简单方法 =!&#10;&#13;

!&#10;&#13; - 适用于所有 wpf、xaml、silverlight 控件,如 TextBlock、HyperlinkText 等


new*_*man 5

如果您要绑定 TextBlock 的 Text,则其他答案都不起作用。只需将“\n”添加到要中断的绑定文本中即可。


小智 5

如果 <LineBreak/> 在诸如 Grid 或 StackPanel 之类的集合中,则它不起作用。在这种情况下,如下所示:

集合内的 LineBreak